Botan: AutoSeeded_RNG can become reinitialized from predictable data after clearing state
Only affects Botan 3.7.0 through 3.12.0 when AutoSeeded_RNG is cleared and then reused while unseeded, with the clock-and-process-ID fallback on builds lacking a system RNG. Vendor severity is not given. Fixed in 3.13.0.
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- How many real-world setups can hit the bug, from the vendor's advisory and CISA data. It does not know your setup.What do these mean? →
- Specific setups only
- Fix
- Fixed in 3.13.0
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
- Exploitation: none
- Automatable: no
- Technical impact: total
Summary
Botan, a C++ cryptography library, is affected by this vulnerability, where its AutoSeeded_RNG random number generator can be marked as seeded without collecting real entropy after its state is cleared. In affected builds lacking the system RNG, this can cause the generator to produce output derived from predictable values such as a clock reading and process ID, weakening the security of any cryptographic keys or secrets generated with it.
Summarized by anthropic/claude-haiku-5.5. Verify details against the original sources.
Read the original description
Botan is a C++ cryptography library. From 3.7.0 until 3.13.0, an application that calls AutoSeeded_RNG::clear() and then calls randomize with an empty output buffer while the generator is unseeded can cause AutoSeeded_RNG to mark itself seeded without consulting the configured entropy source. On builds without BOTAN_HAS_SYSTEM_RNG, the fallback uses only a clock value and process ID, so a later non-empty request can produce output from predictable state. This issue is fixed in version 3.13.0.
Timeline
- CVE published
- First seen by cve.now
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: total
- Record last updated
Affected versions
- randombit botan
From 3.7.0 · fixed in 3.13.0
References 3
GitHub · randombit/botan
Questions about CVE-2026-118765
What does this mean?
After AutoSeeded_RNG::clear() is called, a randomize call with an empty output buffer while the RNG is still unseeded can leave it in a state where a later non-empty request skips the configured entropy provider. That later output can be derived from predictable state, so RNG output may be predictable.Source: github.com
Am I affected, and how do I check?
Botan versions 3.7.0 through 3.12.0 are affected. The issue needs an application that calls clear() and then randomize with an empty output buffer while unseeded, and it matters most on builds without BOTAN_HAS_SYSTEM_RNG, where the fallback uses only a clock value and the process ID. Check the Botan version in use and whether the build defines BOTAN_HAS_SYSTEM_RNG.Source: github.com
What should I do about it?
Upgrade Botan to 3.13.0 or later. Until then, avoid reusing an AutoSeeded_RNG after calling clear(): construct a fresh instance, or call force_reseed() before using the cleared object.Source: github.com
Is it being exploited?
It is not in CISA's Known Exploited Vulnerabilities catalog, and CISA's SSVC assessment does not mark exploitation as active. That does not mean it has not been attacked: vendors and researchers can report attacks before CISA lists them. No public exploit code is tracked.Source: cve.now feed data