GitHub Advisoryadvisory · Maven

GHSA-574f-3g2m-x479 Bouncy Castle for Java GOST 28147 CTR mode reuses keystream after 255 blocks

CRITICAL Published 2026-04-17 Modified 2026-09-24 Official page ↗
Aliases
CVE-2025-14813
Ecosystem
Maven
Packages
org.bouncycastle:bcprov-jdk14, org.bouncycastle:bcprov-jdk15to18, org.bouncycastle:bcprov-jdk18on, org.bouncycastle:bcprov-debug-jdk14, org.bouncycastle:bcprov-debug-jdk15to18, org.bouncycastle:bcprov-debug-jdk18on, org.bouncycastle:bcprov-ext-jdk14, org.bouncycastle:bcprov-ext-jdk15to18, org.bouncycastle:bcprov-ext-jdk18on, org.bouncycastle:bcprov-ext-debug-jdk14, org.bouncycastle:bcprov-ext-debug-jdk15to18, org.bouncycastle:bcprov-ext-debug-jdk18on, org.bouncycastle:bcprov-debug-jdk15on, org.bouncycastle:bcprov-jdk15on
Severity
Critical
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Weaknesses
CWE-323, CWE-327
Reviewed
2026-06-30

Affected packages

• Maven org.bouncycastle:bcprov-jdk14: >= 1.59, <= 1.80.1 (no fix yet) • Maven org.bouncycastle:bcprov-jdk15to18: >= 1.59, <= 1.80.1 (no fix yet) • Maven org.bouncycastle:bcprov-jdk18on: >= 1.59, < 1.80.2 → fixed in 1.80.2 • Maven org.bouncycastle:bcprov-debug-jdk14: >= 1.59, <= 1.80.1 (no fix yet) • Maven org.bouncycastle:bcprov-debug-jdk15to18: >= 1.59, <= 1.80.1 (no fix yet) • Maven org.bouncycastle:bcprov-debug-jdk18on: >= 1.59, <= 1.80.1 (no fix yet) • Maven org.bouncycastle:bcprov-ext-jdk14: >= 1.59, <= 1.78.1 (no fix yet) • Maven org.bouncycastle:bcprov-ext-jdk15to18: >= 1.59, <= 1.78.1 (no fix yet) • Maven org.bouncycastle:bcprov-ext-jdk18on: >= 1.59, <= 1.78.1 (no fix yet) • Maven org.bouncycastle:bcprov-ext-debug-jdk14: >= 1.59, <= 1.74 (no fix yet) • Maven org.bouncycastle:bcprov-ext-debug-jdk15to18: >= 1.59, <= 1.77 (no fix yet) • Maven org.bouncycastle:bcprov-ext-debug-jdk18on: >= 1.59, <= 1.77 (no fix yet) • Maven org.bouncycastle:bcprov-jdk14: 1.81.0 (no fix yet) • Maven org.bouncycastle:bcprov-jdk15to18: 1.81.0 (no fix yet) • Maven org.bouncycastle:bcprov-jdk18on: >= 1.81.0, < 1.81.1 → fixed in 1.81.1 • Maven org.bouncycastle:bcprov-debug-jdk14: 1.81.0 (no fix yet) • Maven org.bouncycastle:bcprov-debug-jdk15to18: 1.81.0 (no fix yet) • Maven org.bouncycastle:bcprov-debug-jdk18on: 1.81.0 (no fix yet) • Maven org.bouncycastle:bcprov-jdk14: >= 1.82, < 1.84 → fixed in 1.84 • Maven org.bouncycastle:bcprov-jdk15to18: >= 1.82, < 1.84 → fixed in 1.84 • Maven org.bouncycastle:bcprov-jdk18on: >= 1.82, < 1.84 → fixed in 1.84 • Maven org.bouncycastle:bcprov-debug-jdk14: >= 1.82, < 1.84 → fixed in 1.84 • Maven org.bouncycastle:bcprov-debug-jdk15to18: >= 1.82, < 1.84 → fixed in 1.84 • Maven org.bouncycastle:bcprov-debug-jdk18on: >= 1.82, < 1.84 → fixed in 1.84 • Maven org.bouncycastle:bcprov-debug-jdk15on: <= 1.7.0 (no fix yet) • Maven org.bouncycastle:bcprov-jdk15on: <= 1.7.0 (no fix yet)

Description

The GOST 28147-2015 CTR mode implementation (`G3413CTRBlockCipher`) in the Legion of the Bouncy Castle BC-JAVA `bcprov` core module only increments the final byte of the counter, so the counter wraps after 255 blocks and the keystream is reused. Reusing CTR keystream allows an attacker who can observe two ciphertexts produced with the same key/IV to recover the XOR of the plaintexts, breaking confidentiality. Affects BC-JAVA from 1.59 before 1.84 (with backported fixes in 1.80.2 and 1.81.1).

Related

Alias · CVE (1)

  • CVE-2025-14813 : Use of a Broken or Risky Cryptographic Algorithm vulnerability in Legion of the Bouncy Castle Inc. vulnerability

Weakness · CWE (2)

  • CWE-323 Reusing a Nonce, Key Pair in Encryption weakness
  • CWE-327 Use of a Broken or Risky Cryptographic Algorithm weakness

References