chore(deps): bump cryptography from 40.0.2 to 50.0.0 in /requirements - #15143
chore(deps): bump cryptography from 40.0.2 to 50.0.0 in /requirements#15143dependabot[bot] wants to merge 1 commit into
Conversation
Bumps [cryptography](https://github.com/pyca/cryptography) from 40.0.2 to 50.0.0. - [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst) - [Commits](pyca/cryptography@40.0.2...50.0.0) --- updated-dependencies: - dependency-name: cryptography dependency-version: 50.0.0 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
🔵 Review postedLast updated: 2026-08-04 14:29 UTC |
rtibblesbot
left a comment
There was a problem hiding this comment.
PR #15143 bumps cryptography 40.0.2 → 50.0.0 in requirements/cext.txt — a 10-major production bump of a bundled C extension shipped in the Kolibri wheel. CI is failing at make staticdeps-cext, which skips every downstream packaging job (WHL smoke, DEB, EXE, APK, PEX, DMG, Pi).
Security fix (the reason to want this): CVE-2026-69247 — pkcs7_decrypt_der and its PEM/S-MIME variants leaked distinguishable errors when unwrapping a RecipientInfo's encryptedKey, usable as a Bleichenbacher oracle. Plus ten majors of accumulated advisories. Kolibri does not call PKCS#7, so the direct exposure is low.
Blocking — no wheel this build can use. cryptography raised its floor across the range:
| Version | Requires-Python | abi3 tags |
|---|---|---|
| 40.0.2 (current) | >=3.6 |
cp36-abi3 |
| 41.0.0 | >=3.7 |
cp37-abi3 |
| 50.0.0 (proposed) | >=3.9,!=3.9.0,!=3.9.1 |
cp39-abi3, cp311-abi3 |
40.0.2 is the last release publishing a cp36-abi3 wheel. Kolibri declares requires-python = ">=3.6, <3.15" (pyproject.toml:14), install_cexts.py:224 targets ["36","37","38","39","310","311"], and kolibri/utils/env.py:86 resolves abi3 extensions from a single shared cext/abi3/<System>/<machine> dir used by every interpreter — so the bundled wheel must import on the lowest supported Python. There is no per-version fallback. The build log is unambiguous: No matching distribution found for cryptography==50.0.0, 12 platform targets failed. Fixing this means raising Kolibri's Python floor in pyproject.toml, install_cexts.py, and Makefile:184 — outside a dependency bump.
Blocking — peer conflict. requirements/cext_noarch.txt:4 pins pyOpenSSL==23.2.0, which requires cryptography (!=40.0.0,!=40.0.1,<42,>=38.0.0). 50.0.0 violates <42. Nothing catches it: install_cexts.py:110 and Makefile:184 both pass --no-deps, so this would surface at runtime, not build time. Any eventual bump must move pyOpenSSL (and check cffi==1.15.1, asn1crypto, pycparser) in the same commit, by hand.
Other changelog notes: FFDH (hazmat.primitives.asymmetric.dh) deprecated in 50.0.0 — unused here. Stricter DER/X.509 parsing (SCT trailing bytes, non-zero unused bits in subjectPublicKey, InvalidityDate fractional seconds, OCSP version != v1 rejected); Kolibri's use is RSA keygen/sign/verify via morango, so no expected impact.
Recommend closing. This exact upgrade has been proposed and closed eight times — #12133, #12633 ("This would break compatibility for Python 3.6, so we can't do this"), #14152, #14466 ("Not compatible with our python support"), #14795, #14797, #14865, #14866, #14915. .github/dependabot.yml has no pip entry for /requirements, so this is a Dependabot security update opened outside the configured ecosystems, and "ignore this release" only suppresses one version. A durable fix is an explicit ignore condition for cryptography scoped to /requirements.
Suggestion: the monorepo now carries three independent cryptography pins — this one, platforms/android (42.0.8, PR #15009), and platforms/desktop-app/pyproject.toml:37 (45.0.7, PR #15030, shared with kolibri-oidc-provider-plugin). Worth settling on one target version across all three once the Python-floor question is decided, rather than merging them piecemeal.
@rtibblesbot's comments are generated by an LLM, and should be evaluated accordingly
How was this generated?
Ran a dependency-update review pipeline over the version bump:
- Classified the bump by semver (patch / minor / major) and dependency type (production vs. development)
- Extracted the changelog and release notes across the version range
- Assessed compatibility with this project's usage and whether any code changes are required
- Treated CI as the primary safety net
- Scaled the review depth to the update's risk
- Chose the verdict from semver risk, changelog findings, and CI status
Bumps cryptography from 40.0.2 to 50.0.0.
Changelog
Sourced from cryptography's changelog.
... (truncated)
Commits
dcb7050Prepare for 50.0.0 release (#15372)53fccd9Don't leak how PKCS#7 encryptedKey decryption failed (#15369)d472f97Addfrom __future__ import annotationsto all src/ Python files (#15371)908773dBump downstream dependencies in CI (#15368)2cc07ccBump BoringSSL, OpenSSL, AWS-LC in CI (#15367)c94ede9chore(deps): bump ruff from 0.16.0 to 0.16.1 (#15366)67a8308chore(deps): bump virtualenv from 21.7.0 to 21.7.1 (#15365)95018ffRelease the GIL in one-shot AEAD encrypt/decrypt (#15361)6954733Release the GIL during DH and DSA parameter generation (#15364)6893b94Import _serialization instead of serialization in x509/extensions (#15363)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)You can disable automated security fix PRs for this repo from the Security Alerts page.