Skip to content

fix(security): floor cryptography / python-multipart / starlette to clear active CVEs#791

Merged
rafeekpro merged 2 commits into
developfrom
hotfix/cve-floor-bumps
Jun 17, 2026
Merged

fix(security): floor cryptography / python-multipart / starlette to clear active CVEs#791
rafeekpro merged 2 commits into
developfrom
hotfix/cve-floor-bumps

Conversation

@rafeekpro

Copy link
Copy Markdown
Collaborator

Summary

Develop's Python deps CVE scan started failing after fresh advisories were published against transitive dependencies. The CVE gate is now blocking every Python PR (#789, #790, and any new ones) because none of these were pinned at versions above the patched floor — uv lock was happily resolving the vulnerable versions.

Adds explicit floors in apps/engine/pyproject.toml:

Package Current New floor Resolved CVE
cryptography 48.0.0 >=48.0.1 49.0.0 GHSA-537c-gmf6-5ccf
python-multipart 0.0.28 >=0.0.31 0.0.32 CVE-2026-53538/53539/53540
starlette 1.1.0 >=1.3.1 1.3.1 CVE-2026-54282/54283

Test plan

Notes

  • starlette 1.1.0 → 1.3.1 is two minors. fastapi 0.137 (still on develop's transitive resolution) supports it; no engine code uses internal Starlette routing APIs.
  • python-multipart and cryptography bumps are patch-only on the safe floor; uv picked higher resolutions because the resolver prefers newest within the constraint range.
  • The GLM auto-detect bug surfaced by the two pre-existing failures should be filed as a separate issue if it isn't already tracked.

🤖 Generated with Claude Code

rafeekpro and others added 2 commits June 17, 2026 11:51
…lear active CVEs

Develop's Python deps CVE scan started failing after fresh advisories
were published against transitive dependencies. None of these were
explicitly pinned in apps/engine/pyproject.toml at versions above the
patched floor, so 'uv lock' was happily resolving the vulnerable
versions and the gate was blocking every Python PR (#789, #790,
plus any future ones).

Add explicit floors:
  - cryptography>=48.0.1   GHSA-537c-gmf6-5ccf
  - python-multipart>=0.0.31  CVE-2026-53538/53539/53540
  - starlette>=1.3.1   CVE-2026-54282/54283

Resolution result (uv.lock):
  cryptography     48.0.0 -> 49.0.0
  python-multipart 0.0.28 -> 0.0.32
  starlette        1.1.0  -> 1.3.1

Smoke-test sweep on the bumped resolution passes the same set develop
passes today — the two failures observed (test_assistant
test_chat_returns_assistant_message and test_error_explainer
test_explain_endpoint_ai_falls_back_to_deterministic_without_provider)
also fail on develop verbatim, are unrelated to the bumps, and stem
from a pre-existing GLM provider auto-detection bug.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Starlette 1.3 ships stricter type stubs and httpx now returns ``Any``
for ``response.status_code`` in some contexts, so the
``return 200 <= response.status_code < 300`` pattern in the standalone
JWT-login helpers trips mypy's ``no-any-return``. Explicit ``bool(...)``
keeps the semantics identical and gives mypy a concrete annotation
without an ``# type: ignore`` escape hatch.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@rafeekpro rafeekpro merged commit a12ad66 into develop Jun 17, 2026
16 checks passed
@rafeekpro rafeekpro deleted the hotfix/cve-floor-bumps branch June 17, 2026 10:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants