{"id":"CVE-2026-118767","aliases":["AZL-112403","DEBIAN-CVE-2026-118767","EUVD-2026-113276","GHSA-w8gj-5xrm-gvrp","UBUNTU-CVE-2026-118767"],"status":"published","title":"Botan: Python binding bcrypt APIs truncate passwords containing embedded NULs","description":"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.","severity":{"version":"3.1","score":4.8,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N","level":"medium","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-12","score":0.00217,"percentile":0.12338,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-158"],"published":"2026-10-29T17:17:24Z","modified":"2026-11-05T05:36:30Z","fixes":[{"ecosystem":"Debian:14","package":"botan3","fixed_in":["3.13.0+dfsg-2"],"sources":["osv"]}],"affected":[{"source":"osv","ecosystem":"Azure Linux:3","package":"botan2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"2.14.0-2"}]}]},{"source":"osv","ecosystem":"Debian:12","package":"botan","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.19.3+dfsg-1","2.19.3+dfsg-1+deb12u1","2.19.4+dfsg-1","2.19.5+dfsg-1","2.19.5+dfsg-2","2.19.5+dfsg-3","2.19.5+dfsg-4"]},{"source":"osv","ecosystem":"Debian:13","package":"botan","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.19.5+dfsg-4"]},{"source":"osv","ecosystem":"Debian:13","package":"botan3","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["3.10.0+dfsg-1","3.10.0+dfsg-2","3.11.0+dfsg-1","3.11.1+dfsg-1","3.11.1+dfsg-2","3.12.0+dfsg-1","3.12.0+dfsg-2","3.12.0+dfsg-2~deb13u1","3.13.0+dfsg-1","3.13.0+dfsg-2","3.7.1+dfsg-2","3.8.1+dfsg-1","3.9.0+dfsg-1","3.9.0+dfsg-2","3.9.0+dfsg-2.1"]},{"source":"osv","ecosystem":"Debian:14","package":"botan3","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.13.0+dfsg-2"}]}],"versions":["3.10.0+dfsg-1","3.10.0+dfsg-2","3.11.0+dfsg-1","3.11.1+dfsg-1","3.11.1+dfsg-2","3.12.0+dfsg-1","3.12.0+dfsg-2","3.12.0+dfsg-2~deb13u1","3.13.0+dfsg-1","3.7.1+dfsg-2","3.8.1+dfsg-1","3.9.0+dfsg-1","3.9.0+dfsg-2","3.9.0+dfsg-2.1"]},{"source":"osv","ecosystem":"Ubuntu:18.04:LTS","package":"botan","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.4.0-3","2.4.0-4","2.4.0-5ubuntu1"]},{"source":"osv","ecosystem":"Ubuntu:20.04:LTS","package":"botan","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.9.0-2","2.9.0-2build1","2.12.1-2","2.12.1-2build1"]},{"source":"osv","ecosystem":"Ubuntu:Pro:22.04:LTS","package":"botan","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.17.3+dfsg-3","2.19.1+dfsg-2ubuntu1","2.19.1+dfsg-2ubuntu1+esm1"]},{"source":"osv","ecosystem":"Ubuntu:Pro:24.04:LTS","package":"botan","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.19.3+dfsg-1ubuntu1","2.19.3+dfsg-1ubuntu2","2.19.3+dfsg-1ubuntu2+esm1"]}],"products":[{"vendor":"randombit","product":"botan"}],"references":[{"url":"https://github.com/randombit/botan/security/advisories/GHSA-w8gj-5xrm-gvrp","tags":["x_refsource_CONFIRM","advisory","report"]},{"url":"https://github.com/randombit/botan/pull/5814","tags":["x_refsource_MISC","fix","report"]},{"url":"https://github.com/randombit/botan/commit/5a4ac737e72e18a08eca848049e3dd38571c73b4","tags":["x_refsource_MISC","fix","report"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-118767","tags":["web","advisory"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/118xxx/CVE-2026-118767.json","tags":["advisory"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2026-118767","tags":["advisory"]},{"url":"https://ubuntu.com/security/CVE-2026-118767","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-118767","tags":["report"]}],"sources":{"cve":[{"id":"CVE-2026-118767","title":"Botan: Python binding bcrypt APIs truncate passwords containing embedded NULs","description":"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.","status":"published","published":"2026-10-29T17:17:24.323Z","modified":"2026-10-30T17:12:36.136Z","cvss":[{"version":"3.1","score":4.8,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N","level":"medium","assessor":"cna"}],"cwes":["CWE-158"],"updated_at":"2026-11-02T14:20:04.156238Z"}],"euvd":[{"id":"EUVD-2026-113276","description":"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.","status":"published","published":"2026-10-29T17:17:24Z","modified":"2026-10-30T17:12:36Z","cvss":[{"version":"3.1","score":4.8,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N","level":"medium"}],"updated_at":"2026-11-02T16:59:05.567782Z"}],"nvd":[{"id":"CVE-2026-118767","description":"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.","status":"published","published":"2026-10-29T18:17:28.853Z","modified":"2026-10-30T19:37:07.073Z","cvss":[{"version":"3.1","score":4.8,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N","level":"medium","assessor":"secondary"}],"cwes":["CWE-158"],"updated_at":"2026-11-02T14:13:04.940026Z"}],"osv":[{"id":"CVE-2026-118767","title":"Botan: Python binding bcrypt APIs truncate passwords containing embedded NULs","description":"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.","status":"published","published":"2026-10-29T17:17:24.323Z","modified":"2026-11-01T02:30:29.10024845Z","cvss":[{"version":"3.1","score":4.8,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N","level":"medium"}],"cwes":["CWE-158"],"updated_at":"2026-11-02T15:44:57.008854Z"},{"id":"DEBIAN-CVE-2026-118767","description":"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.","status":"published","published":"2026-10-29T18:17:28.853Z","modified":"2026-10-31T21:00:07.273793275Z","cvss":[{"version":"3.1","score":4.8,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N","level":"medium"}],"updated_at":"2026-11-02T15:45:51.374409Z"},{"id":"UBUNTU-CVE-2026-118767","description":"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.","status":"published","published":"2026-10-29T18:17:00Z","modified":"2026-11-05T04:42:51Z","cvss":[{"version":"3.1","score":4.8,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N","level":"medium"}],"updated_at":"2026-11-05T13:33:25.727744Z"},{"id":"AZL-112403","title":"CVE-2026-118767 affecting package botan2 2.14.0-2","description":"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.","status":"published","published":"2026-10-29T18:17:28Z","modified":"2026-11-05T05:36:30Z","updated_at":"2026-11-05T16:41:19.001909Z"}]}}
