bc-csharp: Integrity bypass (forgery) in DSTU 7624 CCM mode without associated data
Summary
bc-csharp, the C# .NET cryptography library, does not bind the nonce and message length into the authentication tag of the DSTU 7624 CCM mode (KCcmBlockCipher) when no associated data is used. An attacker who can observe encrypted messages and knows or chooses some of their plaintext can create ciphertexts with valid tags that the receiver accepts as authentic. Only applications that construct KCcmBlockCipher directly and supply no associated data are affected. The exposure is probably low for most SMEs, because this algorithm is rarely used.
Affected
- Legion of the Bouncy Castle Inc. bc-csharp (BC C# .NET) 2.6.2 and earlier
- BC C# .NET 2.7.0-beta.98 (pre-release)
- Only applications using KCcmBlockCipher directly without associated data
Fixed in
- BC C# .NET 2.7.0 and later
Workaround
- Always supply associated data (a non-empty multiple of the cipher block size) with KCcmBlockCipher. This changes the message format, so sender and receiver must change together.
- Unknown otherwise: the vendor names no other mitigation.
Exploitation
- No known exploitation in the wild.
- No public exploit confirmed at the time of writing.
- Not listed in CISA KEV.
- EPSS is low (0.00252).
- CISA SSVC: exploitation none, automatable yes, technical impact partial.
Our recommendation
- Inventory .NET applications and NuGet dependencies for BouncyCastle.Cryptography or older BouncyCastle.Crypto builds, and check whether they are below 2.7.0.
- Search source code for KCcmBlockCipher or DSTU 7624 CCM use. If found, make it a priority.
- Upgrade to bc-csharp 2.7.0 or later. Note that messages without associated data produced by earlier versions will not verify under 2.7.0, so plan the change with communication partners.
- For vendor products, ask the vendor for its patch status and whether it uses this class.
Public exploits
PoC-in-GitHub, Metasploit and Exploit-DB list nothing for this CVE.
Research sources
- Vendor advisory (bc-csharp wiki CVE-2026-16000) github.com
- Fix commit b01e9e6 github.com
- OSV entry CVE-2026-16000 osv.dev
- VulDB CVE-2026-16000 vuldb.com
- Vulners CVE-2026-16000 vulners.com
Researched and written up in English and German by an AI (Claude by Anthropic) based on NVD, CISA, EPSS and the sources listed. The vendor information is authoritative. Researched on 1 Nov 2026, 06:14.
Original description (NVD)
Missing cryptographic step in the DSTU 7624 CCM mode implementation (KCcmBlockCipher) in Legion of the Bouncy Castle Inc. bc-csharp before 2.7.0 allows an attacker who can observe encrypted messages of known or chosen content to forge ciphertexts with valid authentication tags, via messages encrypted without associated data. The cause is that the G1 block, which binds the nonce, the message length and the parameter flags into the CBC-MAC, was processed only when associated data was present. Without associated data the tag was a CBC-MAC of the plaintext alone, independent of the nonce. Only applications that use KCcmBlockCipher directly and supply no associated data are affected.
Sources
The tracker combines official, freely usable data sources – updated continuously:
- NVD (NIST) – CVEs, rating (CVSS), affected products
- CISA KEV – vulnerabilities confirmed by CISA as actively exploited
- CISA Vulnrichment – CISA assessment (SSVC) in the official CVE record
- FIRST EPSS – probability of exploitation
- Microsoft MSRC – Patch Tuesday: vulnerabilities, severity, updates
- PoC-in-GitHub – public proof-of-concept repositories
- Metasploit (Rapid7) – modules of the Metasploit Framework
- Exploit-DB (OffSec) – archive of public exploits (links only)
- Patch days: official vendor pages (linked per vendor) (Vendor patch days)
This product uses data from the NVD API but is not endorsed or certified by the NVD. EPSS data © FIRST.org.
Affected? We can help.
We check whether your systems are affected, install updates and close the gap – continuously with the System Health Checker if you wish.
