Skip to main content

Botan EUVDEUVD-2026-113278

| CVE-2026-118769 CRITICAL
Out-of-bounds Read (CWE-125)
2026-10-29 GitHub_M
9.2
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Supply attacker-chosen algorithm string to FFI
  2. Exploit
    Select Lion/Cascade variable block size
  3. Execution
    int truncation undersizes caller allocation
  4. Impact
    Block processing corrupts heap memory

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, read limits
MITRE ATT&CK

1 technique across 1 tactic: Collection

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Three concrete prerequisites must all hold: (1) the application accepts arbitrary/external algorithm-parameter strings from untrusted parties; (2) it uses Botan's FFI (C API) raw ECB-mode block-cipher interface and trusts the botan_block_cipher_block_size return value to size a buffer; and (3) the attacker names the variable-block-size Lion cipher (directly or inside a Cascade) with a block size large enough to overflow int. Limiting factors that sharply narrow real-world exposure: the C++ API is entirely unaffected, and the standard FFI cipher modes CBC and CTR are unaffected - only the raw ECB block-cipher FFI path is vulnerable, and only when externally controlled algorithm names are permitted. Vendor-stated workaround: allow only specific known fixed-size block ciphers and reject any externally supplied algorithm name containing the substring 'Lion'; the complete fix is upgrading to 3.13.0.

Impact

The signals here conflict sharply and that conflict is the headline. The supplied CVSS 4.0 vector (CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H) scores 9.2 (Critical) and the vuln.today decision label is act_now, yet the vendor's own GHSA advisory explicitly assigns LOW severity, stating the limited exploitation path is the reason. Both can be reconciled: the AT:P (attack-requirement present) metric and the vendor's reasoning point to the same narrow precondition - the vulnerability is only reachable in an application that (a) accepts arbitrary algorithm-parameter strings from untrusted parties AND (b) drives Botan's FFI/C API raw ECB-mode block-cipher interface. The C++ API and the normally used C API modes (CBC, CTR) are unaffected. So the high base score reflects worst-case impact (memory corruption → potential high confidentiality/integrity/availability loss) against a configuration that is uncommon, not a broadly exploitable default. This is NOT in CISA KEV (not listed in the input), so there is no confirmed active exploitation, and EPSS is not provided in the input, so the exploitation-probability signal is MISSING and cannot be weighed. No working exploit reference is supplied; however, the fix's own test case and the advisory disclose a concrete trigger string (e.g. 'Cascade(Lion(SHA-256,ChaCha20,977022),Lion(SHA-256,ChaCha20,1006679))'), which lowers the research bar considerably. Net: treat as a genuine priority for the specific population of applications that expose Botan's FFI raw-ECB interface to attacker-chosen algorithm names; for everyone else (C++ API, standard modes) real-world risk is low despite the Critical score. The act_now label should be read as 'patch promptly where the FFI/ECB path is exposed,' not 'mass exploitation imminent.'

Exploit ScenarioDerived

An application exposes Botan's FFI raw ECB block-cipher interface and lets an external party supply the algorithm name. The attacker supplies the variable-block-size Lion cipher (or a Cascade of Lions) whose block size exceeds INT_MAX; botan_block_cipher_block_size truncates the size_t to a small or negative int, the application allocates an undersized buffer based on that value, and subsequent block processing writes past it, corrupting memory. No public weaponized exploit is identified at time of analysis, though the patch's regression test publishes a concrete triggering algorithm string.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 29, 2026

Integer truncation in Botan's C API block-cipher size reporting allows an application that passes externally controlled algorithm names into the FFI raw ECB interface to under-allocate a buffer, and subsequent block processing can corrupt memory. Botan versions 2.1.0 through 3.12.x are affected; the C++ API and the standard C API modes CBC and CTR are not. The vendor rates the issue Low because three narrow prerequisites must all hold, yet the CVSS 4.0 base score is 9.2 and the priority decision is act_now; no public exploit was identified at time of analysis and the fix is version 3.13.0.

RemediationAI

Upgrade to Botan 3.13.0, the version named in the advisory as the fix; the upstream change is PR 5805 (commit c6089ab7fab616517d56c447c93e13a5c57a0af3) and the advisory is at https://github.com/randombit/botan/security/advisories/GHSA-c68p-822g-jfvr. If upgrading is not immediately possible, the vendor-stated workaround is to allow only specific known fixed-size block ciphers and to reject any externally supplied algorithm name containing the substring 'Lion'; the trade-off is that Lion and Lion-based Cascade constructions become unavailable, and the workaround only blocks this trigger rather than correcting the underlying truncation, so upgrading remains the complete fix. No vendor-released patch for earlier branches is identified in the provided data.

Affected VersionsENISA

Botan 2.1.0, < 3.13.0

Affected Packages

euvd botan fix: 3.13.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Botan exposes a C API called the FFI. The function botan_block_cipher_block_size returned static_cast<int>(b.block_size()), a size_t-to-int conversion with no range check (CWE-681), which is the root cause. Block ciphers ordinarily report small fixed sizes such as 16 bytes for AES, but the Lion construction supports a variable block size, and a Cascade of two Lion instances computes its combined block size as a least common multiple that can exceed INT_MAX. A caller that trusts the truncated return value to size an allocation then processes blocks outside that buffer, producing an out-of-bounds read (CWE-125) or write (CWE-787). The upstream patch in PR 5805 adds a std::in_range<int> check in ffi_block.cpp that returns BOTAN_FFI_ERROR_INVALID_OBJECT_STATE, and replaces std::lcm in cascade.cpp with an overflow-checked mul_or_throw. The trigger requires the application to accept external algorithm-parameter strings and to use the FFI raw ECB block-cipher path; the assessment notes that the C++ API and the normally used C API modes such as CBC and CTR are unaffected, and the specific manner in which an application would exercise the truncated value is not described beyond the advisory's account.

Know when Botan gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 9.2 CRITICAL
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
vuln.today AI 8.1 HIGH

Algorithm string can arrive over the network (AV:N) with no auth (PR:N), but reaching the bug needs the uncommon FFI raw-ECB path plus attacker-controlled cipher names, a non-default precondition mapped to AC:H; memory corruption yields full impact.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Oct 29, 2026 - 18:03 EUVD
CVE Published
Oct 29, 2026 - 17:22 cve.org
CRITICAL 9.2

DescriptionCVE.org

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.

Technical POC Analysis

The vulnerable function is botanblockcipherblocksize in Botan's C API / FFI.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

A critical vulnerability (CVE-2026-118769) in the Botan cryptography library, used in some of our applications, could allow memory corruption if an attacker can control certain input. This affects only applications that expose a specific low-level interface to external input. Leadership should prioritize remediation to prevent potential service disruption or data compromise.

Business Impact: High
Compensating Controls

Apply vendor patch. Until patched, restrict external control of algorithm names passed to the FFI raw ECB interface and validate input to prevent malformed values.

Threat Intelligence Overview

EPSS Score
0.4%
Top 70% exploitable
Prevalence
Low
specialized C++ crypto library, far narrower deployment than OpenSSL
Social Media
1
Sightings
Data Quality
6 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

46
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +46
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

More in Botan

View all
CVE-2016-2195 CRITICAL
9.8 May 13

Integer overflow in the PointGFp constructor in Botan before 1.10.11 and 1.11.x before 1.11.27 allows remote attackers t

CVE-2016-2196 CRITICAL
9.8 May 13

Heap-based buffer overflow in the P-521 reduction function in Botan 1.11.x before 1.11.27 allows remote attackers to cau

CVE-2017-2801 MEDIUM POC
6.5 May 24

A programming error exists in a way Randombit Botan cryptographic library version 2.0.1 implements x500 string compariso

CVE-2024-50383 MEDIUM POC
5.9 Oct 23

Botan before 3.6.0, when certain GCC versions are used, has a compiler-induced secret-dependent operation in lib/utils/d

CVE-2024-50382 MEDIUM POC
5.9 Oct 23

Botan before 3.6.0, when certain LLVM versions are used, has compiler-induced secret-dependent control flow in lib/utils

CVE-2021-40529 MEDIUM POC
5.9 Sep 06

The ElGamal implementation in Botan through 2.18.1, as used in Thunderbird and other products, allows plaintext recovery

CVE-2018-12435 MEDIUM POC
5.9 Jun 15

Botan 2.5.0 through 2.6.0 before 2.7.0 allows a memory-cache side-channel attack on ECDSA signatures, aka the Return Of

CVE-2015-7826 CRITICAL
9.8 Apr 10

botan 1.11.x before 1.11.22 improperly handles wildcard matching against hostnames, which might allow remote attackers t

CVE-2016-6878 CRITICAL
9.8 Apr 10

The Curve25519 code in botan before 1.11.31, on systems without a native 128-bit integer type, might allow attackers to

CVE-2016-9132 CRITICAL
9.8 Jan 30

In Botan 1.8.0 through 1.11.33, when decoding BER data an integer overflow could occur, which would cause an incorrect l

CVE-2021-24115 CRITICAL
9.8 Feb 22

In Botan before 2.17.3, constant-time computations are not used for certain decoding and encoding operations (base32, ba

CVE-2018-9127 CRITICAL
9.8 Apr 02

Botan 2.2.0 - 2.4.0 (fixed in 2.5.0) improperly handled wildcard certificates and could accept certain certificates as v

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy