
ऑफ़लाइन स्कैनर जो आपको बताता है कि 2026 के Bouncy Castle CVEs में से कौन से वास्तव में आप पर लागू होते हैं - BC, BC-LTS और BC-FJA (FIPS) के बीच, जो एक समान संस्करण योजना साझा नहीं करते। CVE-2026-58062 / CVE-2026-8763 / CVE-2026-59650 / CVE-2026-59638
अपने Java एप्लिकेशन पर Bouncy Castle के 2026 CVE बैच में से कौन-से CVE प्रभाव डालते हैं, इसे ऑफ़लाइन जाँचें। शून्य निर्भरता, एकल jar, नेटवर्क कनेक्शन नहीं, कोई डेटा अपलोड नहीं।
java -jar bc-check.jar ./app.jar
java -jar bc-check.jar --gav bcprov-lts8on:2.73.5 --detail
सभी आधिकारिक CVE विवरण एक ही वाक्य में लिखे गए हैं:
Bouncy Castle for Java before 1.85
लेकिन वास्तव में इसका उपयोग करने वालों में, दो उत्पाद लाइनों के वर्ज़न नंबर ऐसे बिल्कुल नहीं दिखते:
| उत्पाद लाइन | artifact इस प्रकार | वर्ज़न नंबर इस प्रकार | क्या "before 1.85" उनके लिए उपयोगी है |
|---|---|---|---|
| BC (सामान्य संस्करण) | bcprov-jdk18on | 1.81 | ✅ उपयोगी |
| BC-LTS (दीर्घकालिक समर्थन संस्करण) | bcprov-lts8on | 2.73.5 | ❌ पूरी तरह से निर्धारित नहीं किया जा सकता |
| BC-FJA (FIPS प्रमाणित संस्करण) | bc-fips / bctls-fips … | 1.0.2.5 / 2.0.1 / 2.1.2 | ❌ पूरी तरह से निर्धारित नहीं किया जा सकता |
तीनों लाइनों के फ़िक्स्ड वर्ज़न क्रमशः 1.85, 2.73.12, और 7 FIPS artifacts में से प्रत्येक के लिए एक अलग वर्ज़न नंबर हैं। वे एक ही संख्या अक्ष पर नहीं हैं, उनकी आपस में तुलना करना अर्थहीन है।
CVE-2026-8149 BC लाइन को बिल्कुल प्रभावित नहीं करता, केवल BC-LTS 2.73.0–2.73.10 को प्रभावित करता है।
"1.85" वर्ज़न नंबर पर नज़र रखने वाले इसे कभी नहीं खोज पाएंगे।CVE-2026-59650 FIPS संस्करण को बिल्कुल प्रभावित नहीं करता। "before 1.85" के अनुसार रिपोर्ट करना एक झूठा अलार्म है।CVE-2026-59638 के लिए FIPS पक्ष में जाँचा जाने वाला artifact bctls-fips है, bc-fips नहीं ——
एन्क्रिप्शन कोर से TLS मॉड्यूल में बदल गया। केवल bc-fips पर नज़र रखने वाले इसे नहीं खोज पाएंगे।CVE-2026-58062 और 58060 के लिए आधिकारिक रूप से केवल bc-fips के 2.0.2 और 2.1.3 सूचीबद्ध हैं, 1.0.x नहीं ——
इसका अर्थ है कि 1.0.x लाइन प्रभावित नहीं है। जबकि CVE-2026-8763 में 1.0.2.7 सूचीबद्ध है, तो 1.0.x प्रभावित है।
एक ही artifact, एक ही वर्ज़न, अलग-अलग CVE अलग-अलग उत्तर देते हैं।इसके अलावा 10 CVE में प्रारंभिक प्रभावित वर्ज़न हैं (from 1.61, from 1.66, from 1.73 भिन्न-भिन्न हैं),
"सभी वर्ज़न प्रभावित" नहीं है; अन्य 4 पुराने CVE के फ़िक्स्ड वर्ज़न 1.80.2 / 1.81.1 / 1.84 जैसे ब्रांच वर्ज़न हैं,
प्रभावित अंतराल असंतत है (1.74–1.80.1, 1.81, 1.82–1.83)।
मान लीजिए आपने सभी घोषणाएँ पढ़ ली हैं और सभी उत्तर जानते हैं, फिर भी आप जाँच नहीं कर सकते —— क्योंकि उत्तर एक वर्ज़न नंबर नहीं है, बल्कि एक "उत्पाद लाइन × artifact × CVE" का त्रि-आयामी तालिका है।
सुधार (2026-10-12): इस अनुभाग में पहले लिखा था "4 CVSS critical सभी
unreviewedहैं, Dependabot उन्हें नहीं देख सकता"। इनमें सेCVE-2026-8763को 2026-09-18 को GitHub द्वारा समीक्षा कर शामिल किया गया और पैकेज जानकारी जोड़ी गई, अब Dependabot और OSV इसे देख सकते हैं। अभी भी नहीं दिखने वाले अन्य 3 हैं। नीचे 2026-10-12 की वास्तविक जाँच के अनुसार संशोधित संस्करण है।
4 CVSS critical में से, 3 का GitHub Advisory में स्थिति अभी भी unreviewed है,
प्रभावित पैकेज सूची खाली है (पैकेज संख्या 0)। पैकेज नाम के बिना निर्भरता ट्री से मिलान नहीं हो सकता ——
वे OSV में नहीं जाते, Dependabot अलर्ट नहीं देता, SCA निर्भरता सूची स्कैन करके भी उन्हें नहीं खोज सकता।
org.bouncycastle:bcprov-jdk18on:1.81 से OSV (2026-10-12) में खोजने पर, 4 परिणाम मिले:
CVE-2025-14813, CVE-2026-0636, CVE-2026-13506, CVE-2026-8763 ——
अन्य 3 critical में से एक भी नहीं है।
⚠️ सीमा स्पष्ट करें: यह नहीं कि "BC की सभी कमज़ोरियाँ Dependabot को नहीं दिखतीं" —— उसी समूह में
CVE-2026-0636reviewed है, पैकेज जानकारी है, सामान्य रूप से अलर्ट देता है। जो नहीं दिखते वे नीचे तालिका मेंunreviewedचिह्नित ये 3 critical हैं।
| CVE | GHSA | स्थिति (2026-10-12) | पैकेज संख्या |
|---|---|---|---|
| CVE-2026-58062 | GHSA-j295-77c3-9frf | unreviewed | 0 |
| CVE-2026-8763 | GHSA-9pwp-9qqc-pr26 | reviewed (2026-09-18 से) | 6 |
| CVE-2026-59650 | GHSA-ghgq-7g74-28wp | unreviewed | 0 |
| CVE-2026-59638 | GHSA-8rxj-3p7p-rq39 | unreviewed | 0 |
वैश्विक डेटाबेस में 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 हैं, जो इस टूल की निर्धारण तालिका के अनुरूप हैं।
java -jar bc-check.jar <路径> [更多路径...] [选项]
java -jar bc-check.jar --gav <坐标>
पथ jar / war फ़ाइल हो सकता है (Spring Boot fat-JAR सहित, स्वचालित रूप से परत-दर-परत विस्तारित), या एक निर्देशिका (पुनरावर्ती)।
| विकल्प | विवरण |
|---|---|
--gav <निर्देशांक> | फ़ाइल स्कैन न करें, सीधे एक निर्देशांक का निर्धारण करें, जैसे bcprov-lts8on:2.73.5 |
-d, --detail | प्रत्येक मिले CVE और आधिकारिक मूल पाठ को विस्तार से सूचीबद्ध करें |
--json | JSON आउटपुट करें, पाइपलाइन से जोड़ने में सुविधाजनक (सदैव UTF-8) |
--utf8 / --gbk | कंसोल में चीनी विकृत होने पर एन्कोडिंग बलपूर्वक निर्दिष्ट करें |
--no-color | रंगीन आउटपुट बंद करें |
एग्ज़िट कोड: 0 = कोई मेल नहीं; 1 = CVE मिला; 2 = उपयोग त्रुटि। सीधे 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 线)
BC अधिकांश मामलों में आपने स्वयं नहीं जोड़ा होता, बल्कि ट्रांज़िटिव डिपेंडेंसी के माध्यम से अंदर आता है — TLS, प्रमाणपत्र सत्यापन, JWT, PDF सिग्नेचर, PGP सभी इसे शामिल करते हैं। इसलिए यह टूल pom को नहीं देखता, केवल वास्तविक आर्टिफ़ैक्ट देखता है:
META-INF/MANIFEST.MF का Bundle-SymbolicName + Bundle-Version (मुख्य पथ)META-INF/maven/org.bouncycastle/*/pom.properties (आधिकारिक jar में नहीं होता, केवल रीपैकेज किए गए में होता है)org/bouncycastle/ की class मिली लेकिन निर्देशांक नहीं पहचाने गए → UNKNOWN रिपोर्ट करता है और मैन्युअल पुष्टि का संकेत देता हैचौथा मामला वह है जब इसे होस्ट jar में shade किया गया हो, mvn dependency:tree और SCA दोनों इसे नहीं देख पाते,
यह टूल कम से कम आपको बताएगा "यहाँ BC है, लेकिन मैं संस्करण नहीं पहचान सकता", बजाय चुपचाप छोड़ देने के।
जब jar का नाम बदल दिया जाए (आंतरिक आर्टिफ़ैक्ट रिपॉज़िटरी में पुनःप्रकाशन आम है), तो फ़ाइल नाम से नहीं पहचाना जा सकता, MANIFEST से अभी भी पहचाना जा सकता है।
सब कुछ आधिकारिक github.com/bcgit/bc-java wiki पर 2026 की 37 CVE के प्रत्येक उप-पृष्ठ से
(Issue affecting / Fixed versions मूल पाठ), द्वितीयक विवरण नहीं, समग्र लेख नहीं।
tools/data/bc_cves.jsontools/gen_rules.py द्वारा स्वचालित रूप से CveTable.java में उत्पन्न होती है, हस्तलिखित नहींपुनः उत्पन्न करें: python tools/gen_rules.py
यह टूल केवल आधिकारिक wiki पर 2026 की 37 CVE को कवर करता है। 2026 से पहले की Bouncy Castle कमज़ोरियाँ दायरे में नहीं हैं — उनमें से अधिकांश OSV में जा चुकी हैं, Dependabot / SCA खोज सकते हैं, यह टूल पहिया दोबारा नहीं बनाता।
एक ठोस उदाहरण: org.bouncycastle:bcprov-jdk18on:1.81 OSV में
CVE-2025-14813 और CVE-2026-0636 पाई जा सकती हैं — पहली को यह टूल कवर नहीं करता (2025 की है),
दूसरी को कवर करता है। इसलिए इस टूल का OK रिपोर्ट करने का अर्थ है "2026 के इस बैच से प्रभावित नहीं",
न कि "आपका Bouncy Castle पूरी तरह समस्या-मुक्त है"। दोनों को साथ देखें, एक-दूसरे का विकल्प नहीं।