CVE-2026-16001 IesEngine stream-mode MAC forgery via length-dependent KDF split
Remote attackers can forge authenticated messages in Bouncy Castle C# stream mode by exploiting a key derivation flaw that leaks the MAC key.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- None listed
What is CVE-2026-16001?
CVE-2026-16001 is a high-severity vulnerability in Legion of the Bouncy Castle Inc. bc-csharp, published on 2 Oct 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.
Official description
Exposure of the message authentication key through the encryption keystream in the stream mode of IesEngine (an IesEngine constructed without a block cipher) in Legion of the Bouncy Castle Inc. bc-csharp before 2.7.0 allows a remote attacker who has observed one encrypted message with known plaintext to forge shorter messages of their choosing that the recipient accepts as authentic, via a crafted ciphertext and MAC tag, because the MAC key was taken from the key derivation output directly after a keystream as long as the message, while the derivation input depends only on the static key pair and fixed parameters. The keystream revealed by that one message therefore contains the MAC key for every sufficiently shorter message.
Weakness: CWE-354
Which versions are affected by CVE-2026-16001?
It affects 1 product.
Products include Bouncycastle Bc-Csharp.
How do I fix CVE-2026-16001?
No fix has been published for CVE-2026-16001 yet. Limit exposure of the affected software until one is available.
Is CVE-2026-16001 being exploited?
There is no known exploitation of CVE-2026-16001 in the wild and no public exploit code.
Other vulnerabilities in Legion of the Bouncy Castle Inc. bc-csharp
- CVE-2026-63569 MTI/A0 DHAgreement does not validate the peer's ephemeral value
- CVE-2026-103600 Unbounded ASN.1 nesting depth causes process-terminating stack overflow
- CVE-2026-103603 Unbounded HSS public key level count allows huge array allocation during signature verification
- CVE-2026-103604 Quadratic-time escaping when converting X.509 distinguished names to strings
- CVE-2026-16000 KCcmBlockCipher (DSTU 7624 CCM) tag not bound to nonce when no associated data is used
Sources
Also known as GHSA-43qj-h4fh-p2h4.