CVE-2026-118767
Botan: Python binding bcrypt APIs truncate passwords containing embedded NULs
Botan is a C++ cryptography library. From 1.11.22 until 3.13.0, Botan's Python binding converted Python strings containing U+0000 to const char* values without consistently rejecting the embedded NUL, causing bcrypt and check_bcrypt to process only the prefix before the NUL. Applications could validate a longer password but hash a shorter effective value, allowing application password-policy bypass; scrypt and argon2 are unaffected. This issue is fixed in version 3.13.0.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- High
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- Low
- Integrity
- Low
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
4.8
Botan: Python binding bcrypt APIs truncate passwords containing embedded NULs
Botan is a C++ cryptography library. From 1.11.22 until 3.13.0, Botan's Python binding converted Python strings containing U+0000 to const char* values without consistently rejecting the embedded NUL, causing bcrypt and check_bcrypt to process only the prefix before the NUL. Applications could validate a longer password but hash a shorter effective value, allowing application password-policy bypass; scrypt and argon2 are unaffected. This issue is fixed in version 3.13.0.
- Record
CVE-2026-118767- CVSS 3.1
- 4.8 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N - Weakness
- CWE-158
- Updated
- 2026-11-02
EUVDEUVD-2026-113276
4.8
Botan is a C++ cryptography library. From 1.11.22 until 3.13.0, Botan's Python binding converted Python strings containing U+0000 to const char* values without consistently rejecting the embedded NUL, causing bcrypt and check_bcrypt to process only the prefix before the NUL. Applications could validate a longer password but hash a shorter effective value, allowing application password-policy bypass; scrypt and argon2 are unaffected. This issue is fixed in version 3.13.0.
- Record
EUVD-2026-113276- CVSS 3.1
- 4.8 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N - Updated
- 2026-11-02
NVD
4.8
Botan is a C++ cryptography library. From 1.11.22 until 3.13.0, Botan's Python binding converted Python strings containing U+0000 to const char* values without consistently rejecting the embedded NUL, causing bcrypt and check_bcrypt to process only the prefix before the NUL. Applications could validate a longer password but hash a shorter effective value, allowing application password-policy bypass; scrypt and argon2 are unaffected. This issue is fixed in version 3.13.0.
- Record
CVE-2026-118767- CVSS 3.1
- 4.8 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N - Weakness
- CWE-158
- Updated
- 2026-11-02
OSV
4.8
Botan: Python binding bcrypt APIs truncate passwords containing embedded NULs
Botan is a C++ cryptography library. From 1.11.22 until 3.13.0, Botan's Python binding converted Python strings containing U+0000 to const char* values without consistently rejecting the embedded NUL, causing bcrypt and check_bcrypt to process only the prefix before the NUL. Applications could validate a longer password but hash a shorter effective value, allowing application password-policy bypass; scrypt and argon2 are unaffected. This issue is fixed in version 3.13.0.
- Record
CVE-2026-118767- CVSS 3.1
- 4.8 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N - Weakness
- CWE-158
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2026-118767
4.8
Botan is a C++ cryptography library. From 1.11.22 until 3.13.0, Botan's Python binding converted Python strings containing U+0000 to const char* values without consistently rejecting the embedded NUL, causing bcrypt and check_bcrypt to process only the prefix before the NUL. Applications could validate a longer password but hash a shorter effective value, allowing application password-policy bypass; scrypt and argon2 are unaffected. This issue is fixed in version 3.13.0.
- Record
DEBIAN-CVE-2026-118767- CVSS 3.1
- 4.8 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N - Updated
- 2026-11-02
OSVUBUNTU-CVE-2026-118767
4.8
Botan is a C++ cryptography library. From 1.11.22 until 3.13.0, Botan's Python binding converted Python strings containing U+0000 to const char* values without consistently rejecting the embedded NUL, causing bcrypt and check_bcrypt to process only the prefix before the NUL. Applications could validate a longer password but hash a shorter effective value, allowing application password-policy bypass; scrypt and argon2 are unaffected. This issue is fixed in version 3.13.0.
- Record
UBUNTU-CVE-2026-118767- CVSS 3.1
- 4.8 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N - Updated
- 2026-11-05
OSVAZL-112403 No score
CVE-2026-118767 affecting package botan2 2.14.0-2
Botan is a C++ cryptography library. From 1.11.22 until 3.13.0, Botan's Python binding converted Python strings containing U+0000 to const char* values without consistently rejecting the embedded NUL, causing bcrypt and check_bcrypt to process only the prefix before the NUL. Applications could validate a longer password but hash a shorter effective value, allowing application password-policy bypass; scrypt and argon2 are unaffected. This issue is fixed in version 3.13.0.
- Record
AZL-112403- Updated
- 2026-11-05
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
botan2Azure Linux:3 |
through 2.14.0-2 | None known |
botanDebian:12 |
All versions, plus listed versions 2.19.3+dfsg-12.19.3+dfsg-1+deb12u12.19.4+dfsg-12.19.5+dfsg-12.19.5+dfsg-22.19.5+dfsg-32.19.5+dfsg-4 |
None known |
botanDebian:13 |
All versions, plus listed versions 2.19.5+dfsg-4 |
None known |
botan3Debian:13 |
All versions, plus listed versions 3.10.0+dfsg-13.10.0+dfsg-23.11.0+dfsg-13.11.1+dfsg-13.11.1+dfsg-2 Show 10 moreShow less3.12.0+dfsg-13.12.0+dfsg-23.12.0+dfsg-2~deb13u13.13.0+dfsg-13.13.0+dfsg-23.7.1+dfsg-23.8.1+dfsg-13.9.0+dfsg-13.9.0+dfsg-23.9.0+dfsg-2.1 |
None known |
botan3Debian:14 |
before 3.13.0+dfsg-2, plus listed versions 3.10.0+dfsg-13.10.0+dfsg-23.11.0+dfsg-13.11.1+dfsg-13.11.1+dfsg-2 Show 9 moreShow less3.12.0+dfsg-13.12.0+dfsg-23.12.0+dfsg-2~deb13u13.13.0+dfsg-13.7.1+dfsg-23.8.1+dfsg-13.9.0+dfsg-13.9.0+dfsg-23.9.0+dfsg-2.1 |
3.13.0+dfsg-2 |
botanUbuntu:18.04:LTS |
All versions, plus listed versions 2.4.0-32.4.0-42.4.0-5ubuntu1 |
None known |
botanUbuntu:20.04:LTS |
All versions, plus listed versions 2.9.0-22.9.0-2build12.12.1-22.12.1-2build1 |
None known |
botanUbuntu:Pro:22.04:LTS |
All versions, plus listed versions 2.17.3+dfsg-32.19.1+dfsg-2ubuntu12.19.1+dfsg-2ubuntu1+esm1 |
None known |
botanUbuntu:Pro:24.04:LTS |
All versions, plus listed versions 2.19.3+dfsg-1ubuntu12.19.3+dfsg-1ubuntu22.19.3+dfsg-1ubuntu2+esm1 |
None known |
History
| Recorded | Changed | Sources |
|---|---|---|
| facts | OSV | |
| first indexed | CVE List, EUVD, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-118767 is a medium vulnerability (CVSS 4.8) in Randombit Botan, published October 29, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.22%, the 12th percentile. Fixed in botan3 3.13.0+dfsg-2.
References
github.com/randombit/botan/security/advisories/GHSA-w8gj-5xrm-gvrp
github.com/randombit/botan/pull/5814
github.com/randombit/botan/commit/5a4ac737e72e18a08eca848049e3dd38571c73b4
nvd.nist.gov/vuln/detail/CVE-2026-118767
github.com/CVEProject/cvelistV5/tree/main/cves/2026/118xxx/CVE-2026-118767.json
security-tracker.debian.org/tracker/CVE-2026-118767
ubuntu.com/security/CVE-2026-118767
cve.org/CVERecord?id=CVE-2026-118767