Skip to content

chore(deps): bump cryptography from 40.0.2 to 50.0.0 in /requirements - #15143

Open
dependabot[bot] wants to merge 1 commit into
developfrom
dependabot/pip/requirements/cryptography-50.0.0
Open

chore(deps): bump cryptography from 40.0.2 to 50.0.0 in /requirements#15143
dependabot[bot] wants to merge 1 commit into
developfrom
dependabot/pip/requirements/cryptography-50.0.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Aug 4, 2026

Copy link
Copy Markdown
Contributor

Bumps cryptography from 40.0.2 to 50.0.0.

Changelog

Sourced from cryptography's changelog.

50.0.0 - 2026-07-31


* **SECURITY ISSUE**:
  :func:`~cryptography.hazmat.primitives.serialization.pkcs7.pkcs7_decrypt_der`
  and its PEM and S/MIME variants no longer expose distinguishable errors or
  timing when unwrapping a ``RecipientInfo``'s ``encryptedKey``, which could
  act as a Bleichenbacher oracle for callers that decrypt untrusted messages.
  A random key is now substituted on failure, as described in :rfc:`3218`.
  Credit to **@X1AOxiang** for reporting the issue. **CVE-2026-69247**
* Deprecated Diffie-Hellman key exchange over finite fields (FFDH).
  Everything FFDH is deprecated, including the types in
  ``cryptography.hazmat.primitives.asymmetric.dh`` and loading FFDH keys or
  parameters with the key loading APIs. Users should migrate to a more
  modern key exchange algorithm.
* Added ``xof()`` class methods to
  :class:`~cryptography.hazmat.primitives.hashes.SHAKE128` and
  :class:`~cryptography.hazmat.primitives.hashes.SHAKE256` for constructing
  algorithm instances configured for use with
  :class:`~cryptography.hazmat.primitives.hashes.XOFHash`.
* The :mod:`X.509 verification <cryptography.x509.verification>` APIs are now
  considered stable and are subject to our API stability policy.
* Added the :doc:`/cobblestone` recipe, an implementation of the
  Cobblestone-128 and Cobblestone-256 instantiations of the `C2SP
  chunked-encryption specification
  <https://c2sp.org/chunked-encryption>`_ for streaming authenticated
  encryption of large messages.
* Parsing a Signed Certificate Timestamp list now rejects encodings that
  carry trailing bytes after the list or after an individual SCT, instead of
  silently ignoring them.
* Added support for using :class:`~cryptography.x509.Name` as a field type in
  the :doc:`/hazmat/asn1/index` module.
* Loading a public key or an EC private key now rejects DER where the
  ``subjectPublicKey`` (or EC ``publicKey``) ``BIT STRING`` declares a non-zero
  number of unused bits, instead of silently ignoring it.
* Parsing a CRL entry's ``InvalidityDate`` extension now rejects a
  ``GeneralizedTime`` that carries fractional seconds or another non-DER form,
  matching the strict encoding already required for every other X.509 time
  field.
* :func:`~cryptography.x509.ocsp.load_der_ocsp_request` and
  :func:`~cryptography.x509.ocsp.load_der_ocsp_response` now reject a request
  or response whose ``version`` field is not ``v1``, the only version defined
  by RFC 6960, matching the version validation already performed when loading
  certificates, CSRs and CRLs.
* :class:`~cryptography.hazmat.primitives.hashes.XOFHash` is now supported
  when building against AWS-LC.
* HMAC (and therefore PBKDF2-HMAC) with SHA-3 hashes is now supported when
  building against AWS-LC.
* Diffie-Hellman (:doc:`/hazmat/primitives/asymmetric/dh`) is now supported
  when building against AWS-LC.
</tr></table> 

... (truncated)

Commits

Dependabot compatibility score

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 rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will 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 version will 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 dependency will 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.

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>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file python Pull requests that update Python code labels Aug 4, 2026
@rtibblesbot

rtibblesbot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

🔵 Review posted

Last updated: 2026-08-04 14:29 UTC

@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Build Artifacts

@rtibblesbot rtibblesbot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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-69247pkcs7_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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file python Pull requests that update Python code SIZE: very small

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant