CVE-2026-16000: KCcmBlockCipher (DSTU 7624 CCM) tag not bound to nonce when no associated data is used
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.
Affected Software
Event History
Frequently Asked Questions
Which deployments are affected?
Only applications using KCcmBlockCipher directly in Bouncy Castle bc-csharp versions before 2.7.0 are affected, and only when they encrypt messages without associated data. Uses that supply associated data are not affected by this specific flaw.
What does an attacker need to exploit this?
The attacker needs to be able to observe encrypted messages with known or chosen plaintext content. Under the affected no-associated-data usage, they can forge ciphertexts that carry valid authentication tags.
How can I determine whether my application is exposed?
Review code paths that instantiate or directly use KCcmBlockCipher and determine whether associated data is supplied for every encryption operation. If any such operation uses no associated data on a bc-csharp version before 2.7.0, that path is affected.
What can be done if upgrading is not immediately possible?
Avoid encrypting with KCcmBlockCipher without associated data. Supplying associated data causes the implementation to process the block that binds the nonce, message length, and parameter flags into the CBC-MAC.