
Scanner offline che ti dice quali delle CVE 2026 di Bouncy Castle si applicano realmente a te, tra BC, BC-LTS e BC-FJA (FIPS), che non condividono uno schema di versionamento. CVE-2026-58062 / CVE-2026-8763 / CVE-2026-59650 / CVE-2026-59638
Verifica offline quali di queste CVE di Bouncy Castle del 2026 influenzano la tua applicazione Java. Zero dipendenze, un singolo jar, nessuna connessione di rete, nessun caricamento di dati.
java -jar bc-check.jar ./app.jar
java -jar bc-check.jar --gav bcprov-lts8on:2.73.5 --detail
Tutte le descrizioni ufficiali dei CVE riportano un'unica frase:
Bouncy Castle for Java before 1.85
Ma tra chi lo usa davvero, ci sono due linee di prodotto i cui numeri di versione non hanno affatto questo aspetto:
| Linea di prodotto | artifact del tipo | versione del tipo | «before 1.85» è utile? |
|---|---|---|---|
| BC (versione standard) | bcprov-jdk18on | 1.81 | ✅ Sì |
| BC-LTS (versione a supporto a lungo termine) | bcprov-lts8on | 2.73.5 | ❌ Impossibile da determinare |
| BC-FJA (versione con certificazione FIPS) | bc-fips / bctls-fips … | 1.0.2.5 / 2.0.1 / 2.1.2 | ❌ Impossibile da determinare |
Le versioni corrette delle tre linee sono rispettivamente 1.85, 2.73.12 e una serie di numeri di versione distinti per ciascuno dei 7 artifact FIPS. Non si trovano sullo stesso asse numerico, quindi confrontarle tra loro non ha senso.
CVE-2026-8149 non influisce affatto sulla linea BC, riguarda solo BC-LTS 2.73.0–2.73.10.
Chi si concentra sul numero di versione «1.85» non lo scoprirà mai.CVE-2026-59650 non influisce affatto sulla versione FIPS. Segnalarlo in base a «before 1.85» è un falso allarme.CVE-2026-59638 sul lato FIPS richiede di verificare l'artifact bctls-fips, non bc-fips ——
si passa dal nucleo crittografico al modulo TLS. Chi guarda solo bc-fips non lo trova.CVE-2026-58062 e 58060 elencano ufficialmente solo 2.0.2 e 2.1.3 di bc-fips, senza 1.0.x ——
il che significa che la linea 1.0.x non è interessata. Mentre CVE-2026-8763 elenca 1.0.2.7, quindi 1.0.x è interessata.
Stesso artifact, stessa versione, CVE diversi danno risposte diverse.Ci sono inoltre 10 CVE con una versione iniziale interessata (from 1.61, from 1.66, from 1.73, tutte diverse),
non è «tutte le versioni sono interessate»; altre 4 vecchie CVE hanno come versione corretta versioni di ramo come 1.80.2 / 1.81.1 / 1.84,
e gli intervalli interessati sono discontinui (1.74–1.80.1, 1.81, 1.82–1.83).
Anche supponendo di aver letto tutti gli avvisi e di conoscere tutte le risposte, non potresti comunque verificare —— perché la risposta non è un numero di versione, ma una tabella tridimensionale «linea di prodotto × artifact × CVE».
Correzione (2026-10-12): questa sezione in precedenza diceva «tutti e 4 i CVE con CVSS critical sono
unreviewed, Dependabot non li vede». Tra questi,CVE-2026-8763è stato revisionato e incluso da GitHub il 2026-09-18, con l'aggiunta delle informazioni sui pacchetti, quindi ora Dependabot e OSV lo vedono. Restano invisibili gli altri 3. Di seguito la versione corretta in base alle verifiche effettive del 2026-10-12.
Dei 4 CVE con CVSS critical, 3 hanno ancora lo stato unreviewed nel GitHub Advisory,
con la lista dei pacchetti interessati vuota (numero di pacchetti 0). Senza il nome del pacchetto non è possibile confrontare l'albero delle dipendenze ——
non entrano in OSV, Dependabot non segnala, e anche la scansione SCA degli elenchi delle dipendenze non li rileva.
Interrogando OSV con org.bouncycastle:bcprov-jdk18on:1.81 (2026-10-12), si ottengono 4 risultati:
CVE-2025-14813, CVE-2026-0636, CVE-2026-13506, CVE-2026-8763 ——
nessuno degli altri 3 critical è presente.
⚠️ Per chiarire i limiti: non è che «Dependabot non vede tutte le vulnerabilità di BC» ——
CVE-2026-0636, dello stesso gruppo, è reviewed, ha le informazioni sui pacchetti e viene segnalato normalmente. Quelli invisibili sono i 3 critical contrassegnati comeunreviewednella tabella seguente.
| CVE | GHSA | Stato (2026-10-12) | Numero di pacchetti |
|---|---|---|---|
| CVE-2026-58062 | GHSA-j295-77c3-9frf | unreviewed | 0 |
| CVE-2026-8763 | GHSA-9pwp-9qqc-pr26 | reviewed (dal 2026-09-18) | 6 |
| CVE-2026-59650 | GHSA-ghgq-7g74-28wp | unreviewed | 0 |
| CVE-2026-59638 | GHSA-8rxj-3p7p-rq39 | unreviewed | 0 |
La versione corretta registrata nel database globale per CVE-2026-8763 è bcprov-jdk18on / bcprov-jdk15to18 1.85,
bcprov-lts8on 2.73.12, bc-fips 1.0.2.7 / 2.0.2 / 2.1.3, coerente con la tabella di valutazione di questo strumento.
java -jar bc-check.jar <路径> [更多路径...] [选项]
java -jar bc-check.jar --gav <坐标>
Il percorso può essere un file jar / war (inclusi i fat-JAR di Spring Boot, espansi automaticamente livello per livello), oppure una directory (ricorsiva).
| Opzione | Descrizione |
|---|---|
--gav <coordinate> | Non scansiona file, valuta direttamente una coordinata, ad es. bcprov-lts8on:2.73.5 |
-d, --detail | Elenca in dettaglio le CVE rilevate e il testo ufficiale originale |
--json | Restituisce l'output in JSON, utile per l'integrazione nelle pipeline (sempre UTF-8) |
--utf8 / --gbk | Forza la codifica specificata quando i caratteri cinesi nella console risultano illeggibili |
--no-color | Disattiva l'output colorato |
Codice di uscita: 0 = nessuna corrispondenza; 1 = CVE rilevata; 2 = errore di utilizzo. Utilizzabile direttamente come gate in CI.
[CRITICAL] bcprov-lts8on 2.73.5 BC-LTS 线
位置 :app.jar!/BOOT-INF/lib/bcprov-lts8on-2.73.5.jar
来源 :jar 内 MANIFEST
结论 :命中 29 条 CVE,其中 CVSS critical 4 条
降噪 :其中 13 条按官方 FIPS 侧点名的 artifact 反推,大概率出在 bcpkix / bcpg / bctls 模块。
⚠️ 这是推断不是官方结论,仅供排优先级。
处置 :升级到 2.73.12(BC-LTS 线)
Nella stragrande maggioranza dei casi BC non è una tua dipendenza diretta, ma viene trascinato dentro dalle dipendenze transitive — TLS, validazione dei certificati, JWT, firma PDF, PGP lo richiamano tutti. Per questo lo strumento non guarda il pom, ma solo gli artefatti reali:
Bundle-SymbolicName + Bundle-Version in META-INF/MANIFEST.MF (percorso principale)META-INF/maven/org.bouncycastle/*/pom.properties (assente nei jar ufficiali, presente solo in quelli ripacchettizzati)org/bouncycastle/ ma non riesce a riconoscere le coordinate → segnala UNKNOWN e invita alla verifica manualeIl quarto caso è quello in cui BC è stato shade dentro il jar host: mvn dependency:tree e SCA non lo vedono,
questo strumento almeno ti dice «qui c'è BC, ma non ne riconosco la versione», invece di ometterlo silenziosamente.
Se il jar è stato rinominato (cosa molto comune quando un repository interno ripubblica gli artefatti), il nome del file non è riconoscibile, ma il MANIFEST lo è ancora.
Tutto proviene dalle sottopagine dedicate a ciascuna delle 37 CVE del 2026 sulla wiki ufficiale github.com/bcgit/bc-java
(testo originale di Issue affecting / Fixed versions), non da resoconti di seconda mano né da articoli aggregatori.
tools/data/bc_cves.jsonCveTable.java da tools/gen_rules.py, non copiata a manoRigenerazione: python tools/gen_rules.py