Security Resilience

CVE-2026-17507

Bouncycastle Bc-Java 1.73 – 1.86

Published
02 October 2026
Modified
14 October 2026
Patch / advisory
CVSS Score v4 8.7
Click a component to see what it means
Raw vectorCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:Amber
EPSS Score 0.0034 26th percentile
Risk Priority 44 floored blend · peak EPSS

CVSS and EPSS are reproduced from their sources (NVD, FIRST EPSS). Risk Priority is our own derived reading, not an NVD score.

Summary

CVE-2026-17507 is a high-severity Signed to Unsigned Conversion Error (CWE-195) vulnerability in Bouncycastle Bc-Java. Its CVSS base score is 8.7 (High).

Operationally, exploitation aligns with the MITRE ATT&CK technique Data Obfuscation (T1001); ranked at the 26th percentile by exploit likelihood (below the median); it is not currently listed in the CISA KEV catalog.

The strongest mitigations our analysis identified map to SA-11 (Developer Testing and Evaluation) and SA-15 (Development Process, Standards, and Tools) — see the control section below for these in your framework.

EU & UK References

Vulnerability Data

In Bouncy Castle for Java before 1.86, the MLS implementation (org.bouncycastle.mls) holds RFC 9420's uint32 leaf_index in a signed int, so a wire value with the top bit set decodes to a negative number. That is a legitimate encoding rather…

more

than malformed input, and it must still decode, since the MLS interop test vectors round-trip the full range. GroupKeySet.SecretTree.hasLeaf and Group.validateRemove compared the decoded value directly against the tree's leaf count, and a signed comparison treats any negative int as less than a positive bound, so an out-of-range sender passed the membership check. In the hasLeaf case the SenderData of an unprotected PrivateMessage could then drive LeafIndex.directPath through NodeIndex.parent() arithmetic that never reaches the tree root, growing the resulting node list without bound until the JVM exhausted its heap. A single small message from any current group member could therefore deny service to every other member of the group. Both comparisons now interpret the value as unsigned via Integer.toUnsignedLong, rejecting an out-of-range sender however it was encoded; well-formed leaf indices are unaffected.

CWE(s)

Related Threats

MITRE ATT&CK Enterprise Techniques

T1001 Data Obfuscation Command And Control
Adversaries may obfuscate command and control traffic to make it more difficult to detect.
T1003.001 LSASS Memory Credential Access
Adversaries may attempt to access credential material stored in the process memory of the Local Security Authority Subsystem Service (LSASS).
T1003.003 NTDS Credential Access
Adversaries may attempt to access or create a copy of the Active Directory domain database in order to steal credential information, as well as obtain other information about domain members such as devices, users, and access rights.
T1003.004 LSA Secrets Credential Access
Adversaries with SYSTEM access to a host may attempt to access Local Security Authority (LSA) secrets, which can contain a variety of different credential materials, such as credentials for service accounts.
T1003.008 /etc/passwd and /etc/shadow Credential Access
Adversaries may attempt to dump the contents of <code>/etc/passwd</code> and <code>/etc/shadow</code> to enable offline password cracking.
T1006 Direct Volume Access Stealth
Adversaries may directly access a volume to bypass file access controls and file system monitoring.
Derived from this CVE’s CWE(s) via the direct CWE→ATT&CK cross-walk.

CVEs Like This One

CVE-2026-12852Same product: Bouncycastle Bc-Java
CVE-2026-59652Same product: Bouncycastle Bc-Java
CVE-2024-14041Same product: Bouncycastle Bc-Java
CVE-2023-33201Same product: Bouncycastle Bc-Java
CVE-2026-59644Same product: Bouncycastle Bc-Java
CVE-2026-12185Same product: Bouncycastle Bc-Java
CVE-2026-59643Same product: Bouncycastle Bc-Java
CVE-2026-12860Same product: Bouncycastle Bc-Java
CVE-2026-12816Same product: Bouncycastle Bc-Java
CVE-2026-12803Same product: Bouncycastle Bc-Java

Affected Assets

bouncycastle
bc-java
1.73 — 1.86

Mitigating Controls

Mitigating Controls (NIST 800-53 r5) AI

Developer testing and evaluation can discover conversion errors through static analysis, fuzzing, or targeted unit tests.

Requiring documented development standards and tools can enforce coding rules that prohibit or safely wrap such casts.

Engineering principles can mandate safe integer handling and strong typing to avoid unsafe signed-to-unsigned casts.

Mitigating Controls (NIST CSF 2.0) AI

Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→CSF cross-walk (authority under review) — links open the control.

PR.PS-06 partial match
blocks

Secure SDLC practices (static analysis, code review, safe-integer standards) directly prevent signed-to-unsigned conversion errors.

Mitigating Controls (ISO/IEC 27001:2022 Annex A) AI

Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→ISO cross-walk (authority under review) — links open the control.

blocks

Secure development life cycle mandates practices that can catch signed-to-unsigned conversion errors during design and coding.

blocks

A.8.26 only requires that security requirements (including resilience against attacks such as buffer overflows or SQL injection) be identified and specified during development or acquisition; it does not itself enforce, implement, or prevent the signed-to-unsigned conversion error from arising or being exploitable.

blocks

A.8.27 mandates establishing and applying security engineering principles (e.g. least privilege, security by design, hardening) and design reviews during the SDLC; it does not stop a signed-to-unsigned conversion error from being exploitable if the flawed code is written and deployed.

prevents

Secure coding standards directly prohibit unsafe signed-to-unsigned casts and require defensive checks.

finds

Security testing in development can detect conversion-related defects before release.

References