Botan: Python binding bcrypt APIs truncate passwords containing embedded NULs
Summary
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 valid...
Affected packages
| Ecosystem | Package | Affected | Fixed |
|---|---|---|---|
| randombit | botan | — | — |
Original description The description as published by the source.
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.
Source: CVE.org (CVE Program・cvelistV5) NVD