Skip to content

chore(deps): update dependency cryptography to v48 [security]#565

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/pypi-cryptography-vulnerability
Open

chore(deps): update dependency cryptography to v48 [security]#565
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/pypi-cryptography-vulnerability

Conversation

@renovate

@renovate renovate Bot commented Mar 28, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence
cryptography (changelog) ==46.0.5==48.0.1 age confidence

Review

  • Updates have been tested and work
  • If updates are AWS related, versions match the infrastructure (e.g. Lambda runtime, database, etc.)

cryptography has incomplete DNS name constraint enforcement on peer names

CVE-2026-34073 / GHSA-m959-cc7f-wv43

More information

Details

Summary

In versions of cryptography prior to 46.0.5, DNS name constraints were only validated against SANs within child certificates, and not the "peer name" presented during each validation. Consequently, cryptography would allow a peer named bar.example.com to validate against a wildcard leaf certificate for *.example.com, even if the leaf's parent certificate (or upwards) contained an excluded subtree constraint for bar.example.com.

This behavior resulted from a gap between RFC 5280 (which defines Name Constraint semantics) and RFC 9525 (which defines service identity semantics): put together, neither states definitively whether Name Constraints should be applied to peer names. To close this gap, cryptography now conservatively rejects any validation where the peer name would be rejected by a name constraint if it were a SAN instead.

In practice, exploitation of this bypass requires an uncommon X.509 topology, one that the Web PKI avoids because it exhibits these kinds of problems. Consequently, we consider this a medium-to-low impact severity.

See CVE-2025-61727 for a similar bypass in Go's crypto/x509.

Remediation

Users should upgrade to 46.0.6 or newer.

Attribution

Reporter: @​1seal

Severity

  • CVSS Score: 1.7 / 10 (Low)
  • Vector String: CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N/E:U

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


Cryptography vulnerable to buffer overflow if non-contiguous buffers were passed to APIs

CVE-2026-39892 / GHSA-p423-j2cm-9vmq

More information

Details

If a non-contiguous buffer was passed to APIs which accepted Python buffers (e.g. Hash.update()), this could lead to buffer overflows. For example:

h = Hash(SHA256())
b.update(buf[::-1])

would read past the end of the buffer on Python >3.11

Severity

  • CVSS Score: 6.9 / 10 (Medium)
  • Vector String: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


cryptography has incomplete DNS name constraint enforcement on peer names

CVE-2026-34073 / GHSA-m959-cc7f-wv43 / PYSEC-2026-35

More information

Details

Summary

In versions of cryptography prior to 46.0.5, DNS name constraints were only validated against SANs within child certificates, and not the "peer name" presented during each validation. Consequently, cryptography would allow a peer named bar.example.com to validate against a wildcard leaf certificate for *.example.com, even if the leaf's parent certificate (or upwards) contained an excluded subtree constraint for bar.example.com.

This behavior resulted from a gap between RFC 5280 (which defines Name Constraint semantics) and RFC 9525 (which defines service identity semantics): put together, neither states definitively whether Name Constraints should be applied to peer names. To close this gap, cryptography now conservatively rejects any validation where the peer name would be rejected by a name constraint if it were a SAN instead.

In practice, exploitation of this bypass requires an uncommon X.509 topology, one that the Web PKI avoids because it exhibits these kinds of problems. Consequently, we consider this a medium-to-low impact severity.

See CVE-2025-61727 for a similar bypass in Go's crypto/x509.

Remediation

Users should upgrade to 46.0.6 or newer.

Attribution

Reporter: @​1seal

Severity

  • CVSS Score: 1.7 / 10 (Low)
  • Vector String: CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N/E:U

References

This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).


CVE-2026-34073 / GHSA-m959-cc7f-wv43 / PYSEC-2026-35

More information

Details

cryptography is a package designed to expose cryptographic primitives and recipes to Python developers. Prior to version 46.0.6, DNS name constraints were only validated against SANs within child certificates, and not the "peer name" presented during each validation. Consequently, cryptography would allow a peer named bar.example.com to validate against a wildcard leaf certificate for *.example.com, even if the leaf's parent certificate (or upwards) contained an excluded subtree constraint for bar.example.com. This issue has been patched in version 46.0.6.

Severity

  • CVSS Score: 5.3 / 10 (Medium)
  • Vector String: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N

References

This data is provided by OSV and the PyPI Advisory Database (CC-BY 4.0).


Cryptography vulnerable to buffer overflow if non-contiguous buffers were passed to APIs

CVE-2026-39892 / GHSA-p423-j2cm-9vmq / PYSEC-2026-36

More information

Details

If a non-contiguous buffer was passed to APIs which accepted Python buffers (e.g. Hash.update()), this could lead to buffer overflows. For example:

h = Hash(SHA256())
b.update(buf[::-1])

would read past the end of the buffer on Python >3.11

Severity

  • CVSS Score: 6.9 / 10 (Medium)
  • Vector String: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N

References

This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).


CVE-2026-39892 / GHSA-p423-j2cm-9vmq / PYSEC-2026-36

More information

Details

cryptography is a package designed to expose cryptographic primitives and recipes to Python developers. From 45.0.0 to before 46.0.7, if a non-contiguous buffer was passed to APIs which accepted Python buffers (e.g. Hash.update()), this could lead to buffer overflows. This vulnerability is fixed in 46.0.7.

Severity

  • CVSS Score: 9.8 / 10 (Critical)
  • Vector String: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

References

This data is provided by OSV and the PyPI Advisory Database (CC-BY 4.0).


Vulnerable OpenSSL included in cryptography wheels

GHSA-537c-gmf6-5ccf

More information

Details

pyca/cryptography's wheels include a statically linked copy of OpenSSL. The versions of OpenSSL included in wheels prior to cryptograph 48.01 are vulnerable to a security issue. More details about the vulnerability itself can be found in https://openssl-library.org/news/secadv/20260609.txt.

If you are building cryptography source ("sdist") then you are responsible for upgrading your copy of OpenSSL. Only users installing from wheels built by the cryptography project (i.e., those distributed on PyPI) need to update their cryptography versions.

Severity

  • CVSS Score: 7.5 / 10 (High)
  • Vector String: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

References

This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).


Release Notes

pyca/cryptography (cryptography)

v48.0.1

Compare Source

v48.0.0

Compare Source

v47.0.0

Compare Source

v46.0.7

Compare Source

v46.0.6

Compare Source


Configuration

📅 Schedule: (in timezone America/Montreal)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate Bot changed the title chore(deps): update dependency cryptography to v46.0.6 [security] chore(deps): update dependency cryptography to v46.0.7 [security] Apr 8, 2026
@renovate renovate Bot force-pushed the renovate/pypi-cryptography-vulnerability branch from 89f857d to d6c127f Compare April 8, 2026 22:11
@renovate renovate Bot changed the title chore(deps): update dependency cryptography to v46.0.7 [security] chore(deps): update dependency cryptography to v46.0.7 [security] - autoclosed May 19, 2026
@renovate renovate Bot closed this May 19, 2026
@renovate renovate Bot deleted the renovate/pypi-cryptography-vulnerability branch May 19, 2026 19:32
@renovate renovate Bot changed the title chore(deps): update dependency cryptography to v46.0.7 [security] - autoclosed chore(deps): update dependency cryptography to v46.0.7 [security] May 22, 2026
@renovate renovate Bot reopened this May 22, 2026
@renovate renovate Bot force-pushed the renovate/pypi-cryptography-vulnerability branch 2 times, most recently from 93530ff to d6c127f Compare May 22, 2026 21:35
@renovate renovate Bot force-pushed the renovate/pypi-cryptography-vulnerability branch 2 times, most recently from 3fbd010 to 20f6274 Compare June 3, 2026 16:18
@renovate renovate Bot force-pushed the renovate/pypi-cryptography-vulnerability branch from 20f6274 to a6f54d2 Compare June 16, 2026 03:13
@renovate renovate Bot changed the title chore(deps): update dependency cryptography to v46.0.7 [security] chore(deps): update dependency cryptography to v48 [security] Jun 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants