Skip to content

fix(deps): update dependency cryptography to v46 [security] - #353

Merged
whabanks merged 2 commits into
mainfrom
renovate/pypi-cryptography-vulnerability
Apr 22, 2026
Merged

fix(deps): update dependency cryptography to v46 [security]#353
whabanks merged 2 commits into
mainfrom
renovate/pypi-cryptography-vulnerability

Conversation

@renovate

@renovate renovate Bot commented Feb 11, 2025

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence
cryptography (changelog) ^43.0.0^46.0.0 age confidence

Review

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

GitHub Vulnerability Alerts

CVE-2024-12797

pyca/cryptography's wheels include a statically linked copy of OpenSSL. The versions of OpenSSL included in cryptography 42.0.0-44.0.0 are vulnerable to a security issue. More details about the vulnerability itself can be found in https://openssl-library.org/news/secadv/20250211.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

Low

CVE-2026-26007

Vulnerability Summary

The public_key_from_numbers (or EllipticCurvePublicNumbers.public_key()), EllipticCurvePublicNumbers.public_key(), load_der_public_key() and load_pem_public_key() functions do not verify that the point belongs to the expected prime-order subgroup of the curve.

This missing validation allows an attacker to provide a public key point P from a small-order subgroup. This can lead to security issues in various situations, such as the most commonly used signature verification (ECDSA) and shared key negotiation (ECDH). When the victim computes the shared secret as S = [victim_private_key]P via ECDH, this leaks information about victim_private_key mod (small_subgroup_order). For curves with cofactor > 1, this reveals the least significant bits of the private key. When these weak public keys are used in ECDSA , it's easy to forge signatures on the small subgroup.

Only SECT curves are impacted by this.

Credit

This vulnerability was discovered by:

  • XlabAI Team of Tencent Xuanwu Lab
  • Atuin Automated Vulnerability Discovery Engine
Severity
  • CVSS Score: 8.2 / 10 (High)
  • Vector String: CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

CVE-2026-34073

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

Vulnerable OpenSSL included in cryptography wheels

CVE-2024-12797 / GHSA-79v4-65xg-pq4g

More information

Details

pyca/cryptography's wheels include a statically linked copy of OpenSSL. The versions of OpenSSL included in cryptography 42.0.0-44.0.0 are vulnerable to a security issue. More details about the vulnerability itself can be found in https://openssl-library.org/news/secadv/20250211.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

Low

References

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


cryptography Vulnerable to a Subgroup Attack Due to Missing Subgroup Validation for SECT Curves

CVE-2026-26007 / GHSA-r6ph-v2qm-q3c2

More information

Details

Vulnerability Summary

The public_key_from_numbers (or EllipticCurvePublicNumbers.public_key()), EllipticCurvePublicNumbers.public_key(), load_der_public_key() and load_pem_public_key() functions do not verify that the point belongs to the expected prime-order subgroup of the curve.

This missing validation allows an attacker to provide a public key point P from a small-order subgroup. This can lead to security issues in various situations, such as the most commonly used signature verification (ECDSA) and shared key negotiation (ECDH). When the victim computes the shared secret as S = [victim_private_key]P via ECDH, this leaks information about victim_private_key mod (small_subgroup_order). For curves with cofactor > 1, this reveals the least significant bits of the private key. When these weak public keys are used in ECDSA , it's easy to forge signatures on the small subgroup.

Only SECT curves are impacted by this.

Credit

This vulnerability was discovered by:

  • XlabAI Team of Tencent Xuanwu Lab
  • Atuin Automated Vulnerability Discovery Engine

Severity

  • CVSS Score: 8.2 / 10 (High)
  • Vector String: CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

References

This data is provided by OSV and 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

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).


Release Notes

pyca/cryptography (cryptography)

v46.0.6

Compare Source

v46.0.5

Compare Source

v46.0.4

Compare Source

v46.0.3

Compare Source

v46.0.2

Compare Source

v46.0.1

Compare Source

v46.0.0

Compare Source

v45.0.7

Compare Source

v45.0.6

Compare Source

v45.0.5

Compare Source

v45.0.4

Compare Source

v45.0.3

Compare Source

v45.0.2

Compare Source

v45.0.1

Compare Source

v45.0.0

Compare Source

v44.0.3

Compare Source

v44.0.2

Compare Source

v44.0.1

Compare Source

v44.0.0

Compare Source

v43.0.3

Compare Source


Configuration

📅 Schedule: (in timezone America/Montreal)

  • Branch creation
    • ""
  • 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 force-pushed the renovate/pypi-cryptography-vulnerability branch 2 times, most recently from f884b49 to 54c7e5f Compare February 18, 2025 13:59
@renovate
renovate Bot force-pushed the renovate/pypi-cryptography-vulnerability branch from 54c7e5f to 9ba44eb Compare February 27, 2025 03:44
@renovate
renovate Bot force-pushed the renovate/pypi-cryptography-vulnerability branch 2 times, most recently from b8f5e9d to 24c010e Compare March 14, 2025 19:03
@renovate
renovate Bot force-pushed the renovate/pypi-cryptography-vulnerability branch from 24c010e to 7e6dca1 Compare March 18, 2025 19:24
@renovate
renovate Bot force-pushed the renovate/pypi-cryptography-vulnerability branch 5 times, most recently from 29aca70 to ed79bff Compare May 13, 2025 20:31
@renovate
renovate Bot force-pushed the renovate/pypi-cryptography-vulnerability branch from ed79bff to 669fb8d Compare May 29, 2025 12:41
@renovate renovate Bot changed the title fix(deps): update dependency cryptography to v44 [security] fix(deps): update dependency cryptography to v44 [security] - autoclosed May 30, 2025
@renovate renovate Bot closed this May 30, 2025
@renovate
renovate Bot deleted the renovate/pypi-cryptography-vulnerability branch May 30, 2025 14:10
@renovate renovate Bot changed the title fix(deps): update dependency cryptography to v44 [security] - autoclosed fix(deps): update dependency cryptography to v44 [security] May 30, 2025
@renovate renovate Bot reopened this May 30, 2025
@renovate
renovate Bot force-pushed the renovate/pypi-cryptography-vulnerability branch 3 times, most recently from efe948d to 046f12b Compare June 4, 2025 17:55
@renovate
renovate Bot force-pushed the renovate/pypi-cryptography-vulnerability branch from 046f12b to 0c0acd0 Compare June 12, 2025 17:59
@renovate
renovate Bot force-pushed the renovate/pypi-cryptography-vulnerability branch from 0c0acd0 to 75b5fb3 Compare June 24, 2025 20:45
@renovate
renovate Bot force-pushed the renovate/pypi-cryptography-vulnerability branch 2 times, most recently from b752754 to 5a62b6e Compare September 3, 2025 14:53
@renovate
renovate Bot force-pushed the renovate/pypi-cryptography-vulnerability branch 2 times, most recently from cd97d96 to ce72550 Compare September 16, 2025 19:53
@renovate
renovate Bot force-pushed the renovate/pypi-cryptography-vulnerability branch from ce72550 to b3254e8 Compare October 6, 2025 14:21
@renovate renovate Bot changed the title fix(deps): update dependency cryptography to v44 [security] fix(deps): update dependency cryptography to v46 [security] Oct 6, 2025
@renovate renovate Bot changed the title fix(deps): update dependency cryptography to v44 [security] fix(deps): update dependency cryptography to v46 [security] Dec 28, 2025
@renovate
renovate Bot force-pushed the renovate/pypi-cryptography-vulnerability branch from efdb5ae to 1af4f8d Compare December 28, 2025 22:39
@renovate renovate Bot changed the title fix(deps): update dependency cryptography to v46 [security] fix(deps): update dependency cryptography to v44 [security] Dec 29, 2025
@renovate
renovate Bot force-pushed the renovate/pypi-cryptography-vulnerability branch from 1af4f8d to 59fcb7d Compare December 29, 2025 02:49
@renovate
renovate Bot force-pushed the renovate/pypi-cryptography-vulnerability branch from 59fcb7d to 0e6c01f Compare January 26, 2026 20:05
@renovate
renovate Bot force-pushed the renovate/pypi-cryptography-vulnerability branch from 0e6c01f to 4a8e362 Compare February 10, 2026 20:57
@renovate renovate Bot changed the title fix(deps): update dependency cryptography to v44 [security] fix(deps): update dependency cryptography to v46 [security] Feb 11, 2026
@renovate
renovate Bot force-pushed the renovate/pypi-cryptography-vulnerability branch 3 times, most recently from bf95f24 to ac12ca9 Compare February 11, 2026 19:19
@renovate
renovate Bot force-pushed the renovate/pypi-cryptography-vulnerability branch from ac12ca9 to 4f7e976 Compare February 25, 2026 20:12
@renovate
renovate Bot force-pushed the renovate/pypi-cryptography-vulnerability branch 4 times, most recently from b28ca04 to bdd0446 Compare March 11, 2026 20:52
@renovate
renovate Bot force-pushed the renovate/pypi-cryptography-vulnerability branch 3 times, most recently from e1171a9 to e186ae3 Compare March 18, 2026 19:48
@renovate
renovate Bot force-pushed the renovate/pypi-cryptography-vulnerability branch 3 times, most recently from 8934d42 to c37dc32 Compare March 31, 2026 20:29
@renovate
renovate Bot force-pushed the renovate/pypi-cryptography-vulnerability branch from c37dc32 to 574a6ae Compare April 8, 2026 20:51
@renovate
renovate Bot force-pushed the renovate/pypi-cryptography-vulnerability branch from 574a6ae to 51d68cb Compare April 14, 2026 18:04
@renovate

renovate Bot commented Apr 15, 2026

Copy link
Copy Markdown
Contributor Author

Edited/Blocked Notification

Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.

You can manually request rebase by checking the rebase/retry box above.

⚠️ Warning: custom changes will be lost.

@whabanks whabanks 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.

Changes required bumping fido2 to 2.2.0 and migrating existing code in API and Admin. Changes were all tested together and confirmed to be working.

@whabanks
whabanks merged commit 63f6d2a into main Apr 22, 2026
4 checks passed
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.

1 participant