CVE-2023-23931: Cipher.update_into can corrupt memory in pyca cryptography
cryptography is a package designed to expose cryptographic primitives and recipes to Python developers. In affected versions Cipher.updateinto would accept Python objects which implement the buffer protocol, but provide only immutable buffers. This would allow immutable objects (such as bytes) to be mutated, thus violating fundamental rules of Python and resulting in corrupted output. This now correctly raises an exception. This issue has been present since updateinto was originally introduced in cryptography 1.8.
Other sources
Previously, Cipher.updateinto would accept Python objects which implement the buffer protocol, but provide only immutable buffers:
pycon >>> outbuf = b"\x00" 32 >>> c = ciphers.Cipher(AES(b"\x00" 32), modes.ECB()).encryptor() >>> c.updateinto(b"\x00" 16, outbuf) 16 >>> outbuf b'\xdc\x95\xc0x\xa2@\x89\x89\xadH\xa2\x14\x92\x84 \x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
This would allow immutable objects (such as bytes) to be mutated, thus violating fundamental rules of Python. This is a soundness bug -- it allows programmers to misuse an API, it cannot be exploited by attacker controlled data alone.
This now correctly raises an exception.
This issue has been present since updateinto was originally introduced in cryptography 1.8.
— GitHub
Affected Software
Remediation
Event History
Frequently Asked Questions
What is CVE-2023-23931?
CVE-2023-23931 is a vulnerability in the cryptography package for Python that allows the use of objects implementing the buffer protocol to update immutable buffers.
What is the severity of CVE-2023-23931?
CVE-2023-23931 has a severity rating of medium with a CVSS score of 6.5.
Which software is affected by CVE-2023-23931?
The cryptography package for Python versions 1.8 up to and including 39.0.1 is affected by CVE-2023-23931.
How can I fix CVE-2023-23931?
To fix CVE-2023-23931, update the cryptography package to version 39.0.1 or higher.
Where can I find more information about CVE-2023-23931?
You can find more information about CVE-2023-23931 in the following references: [GitHub Advisory](https://github.com/pyca/cryptography/security/advisories/GHSA-w7pp-m8wf-vj6r), [GitHub Pull Request](https://github.com/pyca/cryptography/pull/8230/commits/94a50a9731f35405f0357fa5f3b177d46a726ab3), [NVD](https://nvd.nist.gov/vuln/detail/CVE-2023-23931).