fix(deps): cryptography 49.0.0 → 50.0.0 (GHSA-g6cj-pr64-35w5) — closes all 10 Dependabot alerts - #371
Merged
Merged
Conversation
…26-69247) Closes all ten open Dependabot alerts on this repo. They are one advisory fanned out across uv.lock and the nine generated requirements files. GHSA-g6cj-pr64-35w5 (high): pkcs7_decrypt_der / pkcs7_decrypt_pem / pkcs7_decrypt_smime reported RecipientInfo encryptedKey decryption failures in distinguishable ways, one of which disclosed the exact length recovered from the RSA operation, and the distinction was also observable by timing. An application that decrypts attacker-supplied EnvelopedData and reflects the outcome hands the attacker a Bleichenbacher oracle against the content-encryption key. Introduced in 44.0.0, fixed in 50.0.0. Cortex calls no PKCS#7 decryption API, so practical exposure is nil — cryptography is transitive, pulled by authlib, joserfc, pyjwt and secretstorage. This is bar maintenance, not incident response. Scope is exactly one package: uv.lock carries a single version change, and `git diff requirements/` shows cryptography as the only changed requirement. The ~94-line-per-file diff is that package's platform wheel hash set. Regenerated, never hand-edited: uv lock --upgrade-package cryptography python scripts/generate_pip_constraints.py python scripts/generate_pip_constraints.py --check -> requirements OK (13 checked) Verified: 50.0.0 resolved into the synced venv, `import mcp_server` clean, pytest -k "ast or extractor or codebase" -> 1146 passed. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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.
What
One advisory, ten alerts.
cryptographyis transitive (authlib, joserfc, pyjwt, secretstorage) and appears inuv.lockplus the nine generated requirements files, so Dependabot raises one alert per manifest.GHSA-g6cj-pr64-35w5 / CVE-2026-69247 (high).
pkcs7_decrypt_der,pkcs7_decrypt_pemandpkcs7_decrypt_smimereportedRecipientInfoencryptedKeydecryption failures in distinguishable ways, one of which disclosed the exact length recovered from the RSA operation, and the distinction was also observable by timing. An application that decrypts attacker-suppliedEnvelopedDataand reflects the outcome hands the attacker a Bleichenbacher oracle against the content-encryption key. Introduced in 44.0.0, fixed in 50.0.0.Practical exposure here is nil. Cortex calls no PKCS#7 decryption API. This is bar maintenance, not incident response, and it is stated that way rather than dressed up.
Scope
Exactly one package.
uv.lockhas a single version change;git diff requirements/showscryptographyas the only changed requirement in every file. The ~94-line-per-file diff is that one package's platform wheel hash set.Regenerated, never hand-edited:
Completion Ledger
uv syncresolves 50.0.0;python -c "import cryptography; print(__version__)"→50.0.0;import mcp_serverclean--checkexits 0 against the committed filespypi.organdfiles.pythonhosted.org--checkpasses on all 13 filesgenerate_pip_constraints.py --checkexits 0, proving the committed files are exactly what the generator emits from this lockcryptography: one version change inuv.lock, one package name in the requirements diffspytest -k "ast or extractor or codebase"→ 1146 passed on the synced venv. Full suite is CI's job on this treefast-uriin cortex-viz, handled in that repo's own PR rather than folded in hereAfter merge
Dependabot closes alerts on the default branch, so the count should drop 10 → 0 once this lands. I will verify against the API rather than assume.