Skip to content

fix(deps): update dependency cryptography [security]#1760

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

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

Conversation

@oep-renovate
Copy link
Copy Markdown
Contributor

@oep-renovate oep-renovate Bot commented Mar 28, 2026

This PR contains the following updates:

Package Change Age Confidence
cryptography (changelog) ==46.0.5==46.0.7 age confidence
cryptography (changelog) ~=46.0~=47.0 age confidence

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


Release Notes

pyca/cryptography (cryptography)

v46.0.7

Compare Source

v46.0.6

Compare Source


Configuration

📅 Schedule: (UTC)

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

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

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


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

This PR has been generated by Mend Renovate.

Copy link
Copy Markdown

@JiwaniZakir JiwaniZakir left a comment

Choose a reason for hiding this comment

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

The change in libs/spicedb_tools/uv.lock correctly bumps cryptography from 46.0.5 to 46.0.6 and updates all corresponding wheel hashes and sdist entries for the full platform matrix (manylinux, musllinux, macOS, Windows, armv7l, ppc64le, etc.). It's worth verifying whether any other uv.lock or requirements*.txt files elsewhere in the repo pin cryptography independently — a single lock file update won't cover sibling services or libraries that manage their own dependency sets. Additionally, since this is tagged as a security fix, it would strengthen the PR to reference the specific CVE(s) addressed by 46.0.6 in the commit message or PR description, so the audit trail is clear without requiring reviewers to cross-reference the upstream changelog.

@oep-renovate oep-renovate Bot force-pushed the renovate/pypi-cryptography-vulnerability branch 3 times, most recently from 8239e8d to ff7aeb5 Compare April 9, 2026 03:15
@oep-renovate oep-renovate Bot changed the title fix(deps): update dependency cryptography to v46.0.6 [security] fix(deps): update dependency cryptography to v46.0.7 [security] Apr 9, 2026
@oep-renovate oep-renovate Bot changed the title fix(deps): update dependency cryptography to v46.0.7 [security] fix(deps): update dependency cryptography to v46.0.7 [security] - autoclosed Apr 14, 2026
@oep-renovate oep-renovate Bot closed this Apr 14, 2026
@oep-renovate oep-renovate Bot deleted the renovate/pypi-cryptography-vulnerability branch April 14, 2026 03:16
@oep-renovate oep-renovate Bot changed the title fix(deps): update dependency cryptography to v46.0.7 [security] - autoclosed fix(deps): update dependency cryptography to v46.0.7 [security] Apr 17, 2026
@oep-renovate oep-renovate Bot reopened this Apr 17, 2026
@oep-renovate oep-renovate Bot force-pushed the renovate/pypi-cryptography-vulnerability branch 3 times, most recently from 5730d3a to ba90ba8 Compare April 18, 2026 03:15
@oep-renovate oep-renovate Bot force-pushed the renovate/pypi-cryptography-vulnerability branch from ba90ba8 to a24de4c Compare April 29, 2026 03:35
@oep-renovate oep-renovate Bot changed the title fix(deps): update dependency cryptography to v46.0.7 [security] fix(deps): update dependency cryptography [security] Apr 29, 2026
@oep-renovate
Copy link
Copy Markdown
Contributor Author

oep-renovate Bot commented Apr 29, 2026

⚠️ Artifact update problem

Renovate failed to update artifacts related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: platform/libs/users_handler/uv.lock
Command failed: uv lock --upgrade-package cryptography
Using CPython 3.12.13 interpreter at: /opt/containerbase/tools/python/3.12.13/bin/python3
  × No solution found when resolving dependencies:
  ╰─▶ Because only geti-spicedb-tools==1.0.1 is available and
      geti-spicedb-tools==1.0.1 depends on cryptography>=47.0,<48.dev0,
      we can conclude that all versions of geti-spicedb-tools depend on
      cryptography>=47.0,<48.dev0.
      And because your project depends on cryptography==46.0.7 and
      geti-spicedb-tools, we can conclude that your project's requirements
      are unsatisfiable.

File name: platform/services/user_directory/uv.lock
Command failed: uv lock --upgrade-package cryptography
Using CPython 3.10.20 interpreter at: /opt/containerbase/tools/python/3.10.20/bin/python3
  × No solution found when resolving dependencies:
  ╰─▶ Because only geti-spicedb-tools==1.0.1 is available and
      geti-spicedb-tools==1.0.1 depends on cryptography>=47.0,<48.dev0,
      we can conclude that all versions of geti-spicedb-tools depend on
      cryptography>=47.0,<48.dev0.
      And because your project depends on cryptography==46.0.7 and
      geti-spicedb-tools, we can conclude that your project's requirements
      are unsatisfiable.

@oep-renovate
Copy link
Copy Markdown
Contributor Author

oep-renovate Bot commented May 8, 2026

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.

@oep-renovate oep-renovate Bot force-pushed the renovate/pypi-cryptography-vulnerability branch from a24de4c to 002b51b Compare May 12, 2026 03:36
Signed-off-by: oep-renovate[bot] <212772560+oep-renovate[bot]@users.noreply.github.com>
@oep-renovate oep-renovate Bot force-pushed the renovate/pypi-cryptography-vulnerability branch from 002b51b to 0f2a59a Compare May 14, 2026 03:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant