Repository navigation
fix: security updates for certifi and others, release 2026.10.23 - #72
Merged
Merged
Conversation
There was a problem hiding this comment.
No issues found across 5 files
Confidence score: 5/5
- Automated review surfaced no issues in the provided summaries.
- No files require special attention.
Architecture diagram
sequenceDiagram
participant Dev as Developer
participant PyPI as PyPI Registry
participant UV as uv Package Manager
participant Lock as uv.lock
participant Venv as Virtual Environment
participant CI as CI Pipeline
Note over Dev,PyPI: NEW: Dependency Resolution with Security Pins
Dev->>PyPI: Request certifi >= 2026.10.19
Dev->>PyPI: Request cryptography >= 50.0.2
Dev->>PyPI: Request fastmcp >= 3.3.1,<4
Dev->>PyPI: Request platformdirs >= 4.13
Dev->>PyPI: Request pyjwt >= 2.15.1
Dev->>PyPI: Request starlette >= 1.8
Note over UV,Lock: NEW: uv 0.13.4 with lockfile format v5
UV->>PyPI: Install with exclude-newer = "7 days"
alt Newly released packages (certifi, pip)
Note over UV: CHANGED: Use per-package cutoff 2026-10-21
UV->>PyPI: Accept certifi and pip releases
else Other packages
UV->>PyPI: Apply 7-day wait window
end
alt Package versions satisfy minimums
UV->>Venv: Install compatible versions
UV->>Lock: Generate lock file (revision 5)
else Version conflict
UV->>Dev: Resolution error
end
CI->>UV: Read version from .tool-versions (0.13.4)
CI->>Lock: uv lock --check
Lock-->>CI: Verified (compatible with uv 0.11.13)
CI->>Venv: Run test suite
Venv-->>CI: All tests pass
Note over Dev,Venv: CHANGED: Release version 2026.10.23
howbazaar
approved these changes
Oct 23, 2026
jtroup
added a commit
that referenced
this pull request
Oct 26, 2026
….26 (#73) [ENG-9343](https://stacklet.atlassian.net/browse/ENG-9343) ### what Lower each security minimum in `[project].dependencies` to the release that fixed its CVEs, and release 2026.10.26. - cryptography `>=50`: CVE-2026-69247 was fixed in 50.0.0. - pyjwt `>=2.15`: CVE-2026-101918 and CVE-2026-102275 were fixed in 2.15.0. - starlette `>=1.3.1`: CVE-2026-54283 was fixed in 1.3.1. - fastmcp `>=3.2,<4`: 3.2.0 fixes the advisories that affect us. - platformdirs: no minimum, because it has no published advisories. certifi and pip keep their eMudhra minimums. NEWS.md gets an entry for the fix. The October 23 entries get plainer wording, and the Windows entry now tells users who created their AI app configuration before October 23 to create it again. The encoding fix only reaches new configurations. ### why 2026.10.23 set each minimum to the version we happened to lock, not to the release with the fix. `cryptography>=50.0.2` conflicts with c7n 0.9.53, which pins `cryptography==50.0.1`, so the two cannot share an environment. 50.0.2 fixes no security issues. The advisories come from OSV and cover the versions we locked before 2026.10.23. GHSA-7xgj-8392-5q4r (fastmcp, fixed in 3.4.10) applies only to fastmcp's component authorization with transforms, which we do not use. Two pyjwt advisories have no fixed release yet: CVE-2026-103001 and the disputed CVE-2025-45768. Fixes: fe4b323 ("fix: security updates for certifi and others, release 2026.10.23 (#72)") ### testing The suite ran in a venv with cryptography 50.0.0, fastmcp 3.2.0, pyjwt 2.15.0 and starlette 1.3.1, the lowest versions the new minimums allow. The built wheel installs next to c7n 0.9.53, and 2026.10.23 does not. ### docs NEWS.md has the release notes under October 26, 2026. --------------------------- 🤖 Generated with [Claude Code](https://claude.com/claude-code) [ENG-9343]: https://stacklet.atlassian.net/browse/ENG-9343?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
ENG-9343
what
Require certifi 2026.10.19 or later. Earlier certifi releases trust
the compromised eMudhra CA, and httpx uses certifi as its default CA
bundle. A new minimum in
[project].dependenciesmakes installerspick up the fix.
uv.lockalone does not reach anyone who installsfrom PyPI.
Release 2026.10.23. This is the first release since 2026.04.0, so the
tag publishes every change merged since then, not only this one. The
version is the release date, as in stacklet-admin. NEWS.md moves the
pending entries under an October 23, 2026 heading. It adds
customer-facing entries for the earlier changes that had none, and
rewrites the dataset export entry to match. Changes that only matter
when platform embeds the server stay out of NEWS.md.
Upgrade cryptography, platformdirs, pyjwt and starlette to pick up
CVE fixes. We do not import them, but each now has a minimum in
[project].dependenciesfor the same reason as certifi. fastmcp getsa minimum of 3.3.1, the security release this version ships, and a
cap below 4. fastmcp 4 removes
fastmcp.tools.tool, so a freshinstall of 2026.04.0 gets fastmcp 4.1.0 and fails at import.
For development, update uv to 0.13.4 in
.tool-versionsand pip to26.2.2, with a minimum for pip in the dev group. The new uv moves the
lockfile format from revision 3 to revision 5. uv 0.11.13 still
accepts it, and
uv lock --checkpasses with it.PyPI received both the certifi and the pip release on 2026-10-20.
That is inside our 7-day
exclude-newerwindow, souv lockrefusesthem. A per-package
exclude-newer-packagecutoff of 2026-10-21admits these two releases now. All other packages still need 7 days
on PyPI before uv accepts them. The cutoff also refuses any certifi or
pip release after 2026-10-21 until we remove it. The comment next to
it says to do that after 2026-10-27, when the 7-day window covers
these releases.
The typos hook reads "certifi" as a misspelling, so
[tool.typos]now accepts it.why
The epic ENG-9331 has the detail on the eMudhra CA compromise and the
fixed version of each tool.
testing
This change relies on the existing suite running in CI with uv 0.13.4.
CI reads that version from
.tool-versions.I built the wheel and installed it over 2026.04.0 in a new venv that
held the old certifi, cryptography, fastmcp, platformdirs, pyjwt and
starlette. The install raised each one to its new minimum and chose
fastmcp 3.4.8. Over stdio against a QA instance, the docs, GraphQL
and AssetDB tools all returned results. A bad GraphQL field and a
missing docs page each returned the expected guidance.
docs
NEWS.md has the release notes under October 23, 2026.
🤖 Generated with Claude Code