Botan: Integer overflow when reporting block size in FFI can cause memory corruption
- Published
- Last modified
- Status
- published
- Known exploitation
- Not listed in CISA KEV
- Fix
- Fixed in 3.13.0
- Public exploit
- None on Exploit-DB, Metasploit or GitHub
- Exploitation: none
- Automatable: no
- Technical impact: total
?
Decision points from CISA's Vulnrichment, assessed (SSVC 2.0.3).
SSVC documentationSummary
Botan, a C++ cryptography library, is affected when its C API (FFI) is used in raw ECB mode by an application that accepts external algorithm parameter strings. An attacker who can choose the Lion cipher in that setting can cause a block size truncation that leads to memory corruption, while the C++ API and common C modes such as CBC and CTR are not affected.
Summarized by anthropic/claude-haiku-5.5. Verify details against the original sources.
Read the original description
Botan is a C++ cryptography library. From 2.1.0 until 3.13.0, the Botan C API function botan_block_cipher_block_size converted a size_t block size to int without a bounds check. In an application that accepts external algorithm parameter strings and uses the FFI raw ECB mode, an attacker can select the variable-block-size Lion cipher so that the reported size is truncated, the caller allocates insufficient memory, and later block processing causes memory corruption. The C++ API and normally used C API modes such as CBC and CTR are unaffected. This issue is fixed in version 3.13.0.
Affected versions
- randombit botan
From 2.1.0 · fixed in 3.13.0