Repository navigation
Release 2.8.1: require a certifi without the compromised emSign roots - #111
Conversation
certifi below 2026.10.19 trusts emSign roots whose intermediate keys were compromised (GHSA-6q48-6c7w-9gw2). The SDK reaches certifi only through httpx, so it now declares certifi>=2026.10.19 itself, which keeps any install of this version off an affected certifi. The lock moves certifi to 2026.10.19.
|
Review of 52d4fe8: approve. No blocking defects; two small notes on the PR body. Diff scope. Only certifi 2026.10.19 is the fix. GHSA-6q48-6c7w-9gw2 (critical, published 2026-10-20): pip Version elsewhere. None to move. Release state. Tags top out at CI. All 13 rows pass (ci, test 3.11 through 3.15, Python Audit, Dependency Scan, CodeQL). PR body notes (non-blocking).
Template headings all present, no em-dashes, no ticket ids, no session links. |
|
Notes answered. Checklist: the tests box is now unticked with its reason (a dependency floor adds no behavior to test). Test plan now names ruff format, ty and vulture as run in CI. Wording: kept, since it follows the advisory's own affected range and the floor is its patched version. |
Summary
Release 2.8.1. certifi below 2026.10.19 trusts emSign root certificates whose intermediate CA keys were compromised (GHSA-6q48-6c7w-9gw2). Someone holding one of those keys can issue a valid-looking certificate for any hostname, so a client that trusts them can have its TLS traffic intercepted by an on-path attacker. The SDK reaches certifi only through httpx, and httpx accepts any certifi, so an install could still resolve an affected version.
This release declares
certifi>=2026.10.19as a direct dependency. Any environment that installs 2.8.1 gets a certifi without the compromised roots. The lockfile moves certifi to 2026.10.19.Worked with Varun.
Type of change
Public API
Unchanged. The one new runtime requirement is
certifi>=2026.10.19, which httpx already pulls in.Test plan
uv sync --frozen --all-extras --all-groups, thenuv run pytest(172 passed, 2 skipped),uv run ruff check .(clean); ruff format, ty and vulture ran green in CI.osv-scanneronuv.lock: no issues found. Before this change it reported the certifi advisory.Checklist