fix(deps): bump cryptography to 49.0.0 to clear osv-flagged CVEs - #35759
fix(deps): bump cryptography to 49.0.0 to clear osv-flagged CVEs#35759davesheffer wants to merge 1 commit into
Conversation
GHSA-jwv3-5hgf-82ww (8.7 High) and GHSA-m2h6-j472-rp4c (6.9 Medium) are fixed in cryptography 49.0.0. GHSA-g6cj-pr64-35w5 (8.2 High, published 2026-08-03) is only fixed in 50.0.0, which mlflow currently caps out at (<50), so it gets a time-boxed osv-scanner ignore instead: the vulnerable code path is PKCS#7 SMIME EnvelopedData decryption, which litellm never calls. The relock also moves mlflow 3.14.0 to 3.15.0 and msal 1.36.0 to 1.37.0; both older versions cap cryptography below 49.
Greptile SummaryThis PR updates the proxy’s cryptography dependency and refreshes the lockfile to adopt compatible transitive releases, while adding a time-limited scanner exception for the remaining unreachable advisory.
Confidence Score: 5/5The PR appears safe to merge, with no concrete blocking or non-blocking defect identified in the dependency update or temporary scanner configuration. The upgraded dependency resolves successfully with compatible transitive versions, existing cryptographic paths are reported as tested, lockfile marker changes preserve target-specific resolution, and the remaining scanner exception covers an operation with no repository call path and has a fixed expiry.
|
| Filename | Overview |
|---|---|
| osv-scanner.toml | Adds a narrowly documented, expiring scanner exception for an affected API not used by the repository. |
| pyproject.toml | Raises the proxy cryptography dependency range from 48.x to 49.x. |
| uv.lock | Relocks cryptography at 49.0.0 and compatible transitive dependencies; the broader marker changes are canonicalization within unchanged resolution partitions. |
Reviews (1): Last reviewed commit: "fix(deps): bump cryptography to 49.0.0 t..." | Re-trigger Greptile
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
|
For maintainers: the Block fork dependency changes check rejects uv.lock edits from fork PRs by design, so this PR cannot go green from my fork no matter what. The fix itself is ready and CI-verified up to that gate Two ways to land it. Either adopt this branch into the canonical repo unchanged: or, if you prefer not to trust a fork's lockfile bytes (fair, that is what the guard is for), recreate it in under a minute: change the cryptography constraint in pyproject.toml to Context for the ignore entry: GHSA-g6cj-pr64-35w5 was published 2026-08-03, which is why osv-scan went red on every branch at once. Its fix is cryptography 50.0.0, but every released mlflow caps cryptography below 50, so 49.0.0 plus a time-boxed ignore is the best reachable state. The advisory covers PKCS#7 SMIME EnvelopedData decryption, an API litellm never calls. The other two advisories (8.7 High, 6.9 Medium) are fixed by 49.0.0 directly Happy for this PR to be closed in favor of the adopted branch |
TLDR
Problem this solves:
How it solves it:
Relevant issues
Linear ticket
Pre-Submission checklist
Please complete all items before asking a LiteLLM maintainer to review your PR
@greptileaito re-request a review after pushing changes)Delays in PR merge?
If you're seeing a delay in your PR being merged, ping the LiteLLM Team on Slack (#pr-review).
Screenshots / Proof of Fix
GHSA-g6cj-pr64-35w5 was published on 2026-08-03, which is why osv-scan went red on every branch at once; see for example this run on an unrelated PR. Reproduced locally with the exact scanner CI pins (osv-scanner v2.3.8, sha256-verified against the release's
osv-scanner_SHA256SUMS)Before, at 956d517:
After, at a05f510:
The runtime code paths that exercise cryptography (JWT auth, license verification, credential encryption) pass against 49.0.0:
Type
🚄 Infrastructure
Changes
Bumps the cryptography constraint from
>=48.0.1,<49.0to>=49.0.0,<50.0, following the same pattern as #31122. That clears GHSA-jwv3-5hgf-82ww (8.7 High) and GHSA-m2h6-j472-rp4c (6.9 Medium), both fixed in 49.0.0GHSA-g6cj-pr64-35w5 (8.2 High) is only fixed in 50.0.0, and every released mlflow caps cryptography at <50, so the workspace cannot resolve cryptography 50 yet. It gets a
[[IgnoredVulns]]entry with a 2026-09-04 expiry, mirroring the existing diskcache entry. The exposure is limited: the advisory covers a timing oracle in PKCS#7/SMIMEEnvelopedDatadecryption, an API litellm never calls (usage is AESGCM, RSA sign/verify for JWT and licensing, x509 parsing, and Fernet). When mlflow lifts its cap, cryptography moves to 50 and the entry goes away; the expiry date forces that follow-upThe relock also moves mlflow 3.14.0 to 3.15.0 and msal 1.36.0 to 1.37.0, since both older versions cap cryptography below 49. No other packages changed
Final Attestation