CVE-2026-71884
HighCVSS 8.2Exploitation Probability (EPSS)
Low risk34th percentile - higher than 34% of all known CVEs
Summary
In Bouncy Castle for Java LTS before 2.73.13, the native one-shot CTR packet cipher did not check that the requested input length fitted the counter space left by the IV. With a 13- to 15-byte IV the counter is only 1 to 3 bytes, so for longer input the counter wrapped and the keystream repeated from the start of the same packet. The call still returned the full input length as though every byte had been correctly transformed, with no exception and no short length.
Risk Assessment
Two segments of the message are encrypted under the same keystream, so their plaintexts can be recovered from the ciphertext alone without the key. The caller receives no error indication and may wrongly assume the data was safely encrypted.
Recommendation
Upgrade Bouncy Castle for Java LTS to version 2.73.13 or later. Until then, avoid the native one-shot CTR path with IVs shorter than 16 bytes or use the streaming implementation, which rejects such requests.
Related vulnerabilities
- CVE-2026-55981Critical
A firmware verification vulnerability in Creative Sound Blaster Katana allows an attacker to modify a legitimate firmware image and upload the modified firmware to an affected device. The lack of effective integrity verification enables installation of unauthorized software.
- CVE-2026-54630Critical
In Part-DB before version 2.12.1, the attachment upload handler's dangerous-extension blocklist does not include phar. A .phar file uploaded as an attachment is stored in public/media/ (the Apache document root), and the shipped Apache configuration routes .phar to PHP-FPM, allowing execution of arbitrary PHP.
- CVE-2026-115547Critical
An input validation issue in the Okta Access Gateway (OAG) Admin Console allows processing of specially formatted configuration values. An authenticated administrator can leverage this to execute system commands within the context of the OAG service account.
- CVE-2026-19677Critical
An authentication bypass vulnerability in the public onPhase/frevvo registration form version 11.0.14 allows an unauthenticated remote attacker to authenticate as an arbitrary tenant user, obtain TenantAdmin and Designer privileges, and execute arbitrary operating system commands via manipulation of registration parameters.
- CVE-2026-110243Critical
The network management service on Kiloview E3 NDI encoder firmware fails to validate the network interface name accepted by its link maintenance address configuration endpoint before passing it to a shell command. An authenticated web user with network configuration permissions can exploit this to execute arbitrary operating system commands as root.
- CVE-2026-107861Critical
The system control service on Kiloview E3 NDI encoder firmware fails to sanitize the hostname parameter accepted by its device naming endpoint, passing it unquoted into a shell command. An authenticated web user with access to this function can embed characters to execute arbitrary operating system commands as root, resulting in full device compromise.
- CVE-2026-97785Critical
Improper authentication in AAD App Proxy allows an unauthorized attacker to elevate privileges over a network.
- CVE-2026-83938Critical
Missing authentication for a critical function in Azure Kubernetes Configuration Service allows an unauthorized attacker to elevate privileges over a network.
- CVE-2026-110063Critical
Improper link resolution before file access ('link following') in VM Inspector for Azure Virtual Machines allows an unauthorized attacker to elevate privileges over a network.
- CVE-2026-109122Critical
The network management service on affected Kiloview E3 NDI encoder firmware fails to sanitize one field used when configuring static routes via the web management API. An authenticated web user with permission to configure static routes can exploit this to execute arbitrary operating system commands as root, and the malicious configuration persists across reboots.
Original NVD description (English source)
In Bouncy Castle for Java LTS before 2.73.13, the native one-shot CTR packet cipher did not check that the requested input length fitted the counter space the IV left. In CTR mode the IV and the block counter share one 16-byte block, so an IV of 13 to 15 bytes leaves a counter of only 1 to 3 bytes, addressing 256, 65536 or 16777216 blocks respectively. Given a longer input the counter wrapped and the keystream repeated from the start of the same packet, and the call then returned the full input length as though every byte had been correctly transformed. Two segments of the message were therefore encrypted under the same keystream, so their plaintexts can be recovered from the ciphertext alone, without the key, while the caller saw neither an exception nor a short length to indicate it. The streaming implementation validates at init and again while processing, and the portable AESCTRPacketCipher rejects such a request with "Counter in CTR/SIC mode out of range.", but the native one-shot path has a single entry point and performed no counter-range validation there. It now preflights the IV-derived counter range and rejects an over-long request before any output is written, so the operation is failure-atomic and never reports success for bytes it did not correctly transform. A counter of four bytes or more cannot be exhausted by a Java int length and is unaffected, as is a full 16-byte IV, where the counter range is the caller's responsibility. Bouncy Castle for Java (bcprov) is not affected, as it ships no native implementations.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

