Skip to content

fix(deps): raise floors for eMudhra CA compromise [IIM-96] - #743

Merged
olivermeyer merged 4 commits into
mainfrom
fix/emudhra-floors
Oct 22, 2026
Merged

olivermeyer merged 4 commits into
mainfrom
fix/emudhra-floors

Conversation

@olivermeyer

Copy link
Copy Markdown
Collaborator

Why?
Incident IIM-96 (eMudhra CA compromise, CVE-2026-111943) requires certifi 2026.10.19 or newer (older releases still trust the compromised roots, and 2026.10.18 is bad), pip 26.2.2 or newer and uv 0.13.4 or newer. #738 only bumped certifi in the lock, so existing environments can keep a bad certifi, and the dev container is built on Debian 11 (bullseye), which has no fixed ca-certificates.

How?
Raise the floors for certifi (runtime), pip and uv (dev, plus [tool.uv] required-version and the uv-pre-commit hook rev that mirrors it), relock with only pip moving (26.2.1 to 26.2.2), and delete .devcontainer/ with its doc and keyword references. No hotfix release is planned: the wheel declares only floors, so fresh installs already get certifi 2026.10.19, the new floor forces the upgrade in existing environments with the next normal release, and the v1.6.0 native builds have 0 downloads.

🤖 Generated with Claude Code

olivermeyer and others added 4 commits October 22, 2026 16:21
The IIM-96 incident doc (eMudhra CA compromise, CVE-2026-111943)
requires pip 26.2.2 or newer.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Older certifi releases still trust the compromised eMudhra roots
(IIM-96, CVE-2026-111943), and 2026.10.18 is bad. The lock already
has 2026.10.19 (#738); this makes existing environments upgrade.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The IIM-96 incident doc (eMudhra CA compromise, CVE-2026-111943)
requires uv 0.13.4 or newer. Raise [tool.uv] required-version and
the dev dependency floor. Bump the uv-pre-commit hook to match, since
uv 0.11.6 now refuses to run against this project.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The dev container Dockerfile used Debian 11 (bullseye), which has no
fixed ca-certificates for the eMudhra CA compromise (IIM-96). Remove
.devcontainer/ and the references to it in the docs and keywords.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ox-security

ox-security Bot commented Oct 22, 2026

Copy link
Copy Markdown

OX Security Logo

OX Security reviewed this pull request — nothing to fix.

✔ No issues found

Branch fix/emudhra-floors → main

View scan in OX Security →

@olivermeyer
olivermeyer marked this pull request as ready for review October 22, 2026 14:27
@olivermeyer
olivermeyer requested a review from a team as a code owner October 22, 2026 14:27
@claude

claude Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

Claude finished @olivermeyer's task in 4m 41s —— View job


PR Review: Security Fix for eMudhra CA Compromise ✅

Completed comprehensive review of security fix for IIM-96 (CVE-2026-111943).


Review Summary

This PR correctly implements the security fix with no blocking issues. ✅

Detailed Findings

✅ Security Fix Correctness

All dependency floors are correctly set to address the eMudhra CA compromise:

  • certifi >=2026.10.19 (line 94, pyproject.toml) ✓
    • Comment: "IIM-96 eMudhra CA (CVE-2026-111943); older releases trust compromised roots"
  • pip >=26.2.2 (line 222, pyproject.toml) ✓
    • Comment: "IIM-96 eMudhra CA (>=26.2.2)"
  • uv >=0.13.4 (line 223, pyproject.toml) ✓
    • Comment: "IIM-96 eMudhra CA (>=0.13.4)"
  • [tool.uv] required-version >=0.13.4 (line 229) ✓
  • .pre-commit-config.yaml uv hook rev 0.13.4 (line 55) ✓

uv.lock verification: pip correctly bumped from 26.2.1 → 26.2.2

✅ Devcontainer Removal Completeness

All devcontainer files and references properly removed:

  • Deleted files: All 5 devcontainer files removed (Dockerfile, devcontainer.json, onCreateCommand, postAttachCommand, postCreateCommand)
  • OPERATIONAL_EXCELLENCE.md: Dev Containers reference removed, list items renumbered (24→27 instead of 24→28)
  • SOFTWARE_ARCHITECTURE.md: Dev Containers bullet point removed from Development Environment section
  • No dangling references: grep -ri "devcontainer|Codespace" returns no results ✓

✅ Code Quality Standards

  • Commit messages: All 4 commits follow conventional commits format ✓

    • fix(deps): raise pip floor to 26.2.2 [IIM-96]
    • fix(deps): raise certifi floor to 2026.10.19
    • fix(deps): raise uv floor to 0.13.4 [IIM-96]
    • chore: remove the dev container setup
  • Linting: All checks passed ✓

    • ruff check: All checks passed
    • ruff format: 287 files already formatted
    • pyright: 0 errors, 0 warnings, 0 informations
    • mypy: Success, no issues in 84 source files
  • Test markers: No test files changed, so no marker compliance issues ✓

✅ Maintenance Mode Compliance

This PR qualifies under CLAUDE.md maintenance mode rules:

✅ No Breaking Changes

The dependency floor bumps are non-breaking:

  • Fresh installs already get certifi 2026.10.19 (wheels declare floors)
  • Existing environments will upgrade on next pip install --upgrade aignostics
  • v1.6.0 native builds have 0 downloads (minimal impact)
  • No API changes, no CLI changes, no configuration changes

Rationale for Devcontainer Removal

The PR correctly removes the devcontainer setup because:

  1. Debian 11 (bullseye) has no fixed ca-certificates package
  2. PR chore(deps): update dependency certifi to v2026.10.19 [security] #738 only bumped certifi in the lock file, not the floor
  3. Raising the floor in pyproject.toml forces the upgrade in all environments
  4. No hotfix release needed (fresh installs already safe, existing envs upgrade on next release)

Suggestions (Non-blocking)

None - this PR is excellent as-is.

Praise

  • Excellent documentation: The PR description clearly explains the "why" and "how"
  • Comprehensive inline comments: Each dependency bump includes the incident reference
  • Clean commit history: Logical separation of concerns (3 dependency bumps + devcontainer removal)
  • Thorough cleanup: No dangling references to devcontainer anywhere

Verdict: ✅ claude:review:passed

@claude claude Bot added the claude:review:passed Automated Claude PR review found no blocking issues on the current head commit label Oct 22, 2026
@codecov

codecov Bot commented Oct 22, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ All tests successful. No failed tests found.
see 8 files with indirect coverage changes

@sonarqubecloud

Copy link
Copy Markdown

@olivermeyer
olivermeyer merged commit f2f914b into main Oct 22, 2026
25 of 29 checks passed
@olivermeyer
olivermeyer deleted the fix/emudhra-floors branch October 22, 2026 15:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

claude:review:passed Automated Claude PR review found no blocking issues on the current head commit

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants