Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
bc-check — 2026年のBouncy Castle CVEのうち、実際に自分に該当するものを特定するオフラインスキャナー。BC、BC-LTS、BC-FJA(FIPS)に対応しており、これらはバージョンスキームを共有していません。CVE-2026-58062 / CVE-2026-8763 / CVE-2026-59650 / CVE-2026-59638 | Kitploit
ツール/GitHubGitHub/xiaoqimikko/bc-check
脆弱性スキャナー脆弱性分析暗号化DevSecOpsサプライチェーンセキュリティ
GitHubxiaoqimikko/bc-check

bc-check

2026年のBouncy Castle CVEのうち、実際に自分に該当するものを特定するオフラインスキャナー。BC、BC-LTS、BC-FJA(FIPS)に対応しており、これらはバージョンスキームを共有していません。CVE-2026-58062 / CVE-2026-8763 / CVE-2026-59650 / CVE-2026-59638

リポジトリを見る
10日前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

bc-check

Java アプリケーションが Bouncy Castle の2026年の一連の 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

しかし実際に使っている人のうち、2 つの製品ラインのバージョン番号はこの形になっていません:

製品ラインartifact の形式バージョン番号の形式「before 1.85」は役に立つか
BC(通常版)bcprov-jdk18on1.81✅ 役に立つ
BC-LTS(長期サポート版)bcprov-lts8on2.73.5❌ まったく判断できない
BC-FJA(FIPS 認証版)bc-fips / bctls-fips …1.0.2.5 / 2.0.1 / 2.1.2❌ まったく判断できない

3 つのラインの修正版はそれぞれ 1.85、2.73.12、そして 7 つの FIPS artifact それぞれのバージョン番号です。 これらは同じ数直線上になく、互いに比較しても意味がありません。

4 つの例で、一律の判断が誤った結論を導く理由を示す

  1. CVE-2026-8149 は BC ラインにはまったく影響せず、BC-LTS 2.73.0–2.73.10 にのみ影響します。 「1.85」というバージョン番号だけを見ている人は、決してこれを見つけられません。
  2. CVE-2026-59650 は FIPS 版にはまったく影響しません。「before 1.85」で報告すると、空振りになります。
  3. CVE-2026-59638 で FIPS 側で確認すべき artifact は bctls-fips であり、bc-fips ではありません —— 暗号コアから TLS モジュールに変わっています。bc-fips だけを見ている人は確認できません。
  4. 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)。

すべての公告を読み終え、すべての答えを知っていると仮定しても、依然として確認できません —— 答えは 1 つのバージョン番号ではなく、「製品ライン × artifact × CVE」の 3 次元表だからです。

もう 1 つ:この一連の CVE は、あなたの Dependabot ではおそらく警告されません

訂正(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 は 1 件も含まれていません。

⚠️ 境界を明確にします:「BC の脆弱性は Dependabot からすべて見えない」わけではありません —— 同じ一連のうち CVE-2026-0636 は reviewed で、パッケージ情報があり、正常に警告されます。 見えないのは、下表で unreviewed と記されたこの 3 件の critical です。

CVEGHSAステータス(2026-10-12)パッケージ数
CVE-2026-58062GHSA-j295-77c3-9frfunreviewed0
CVE-2026-8763GHSA-9pwp-9qqc-pr26reviewed(2026-09-18 以降)6
CVE-2026-59650GHSA-ghgq-7g74-28wpunreviewed0
CVE-2026-59638GHSA-8rxj-3p7p-rq39unreviewed0

グローバルライブラリが 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 と公式原文を1件ずつ列挙します
--jsonJSON を出力し、パイプラインへの組み込みを容易にします(常に 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 线)

Bouncy Castle をどのように検出するか

BC はほとんどの場合あなた自身が導入したものではなく、推移的依存によって引き込まれています —— TLS、証明書検証、JWT、PDF 署名、PGP はいずれもこれを導入します。そのため本ツールは pom を見ず、実際の成果物のみを確認します:

  1. META-INF/MANIFEST.MF の Bundle-SymbolicName + Bundle-Version(主要な経路)
  2. jar ファイル名
  3. META-INF/maven/org.bouncycastle/*/pom.properties(公式 jar には存在せず、再パッケージされたものにのみ存在)
  4. org/bouncycastle/ の class のみが見つかり座標を特定できない → UNKNOWN を報告し手動確認を促す

4 番目はホスト 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.json
  • 判定表は tools/gen_rules.py によって CveTable.java に自動生成され、手作業で転記していません
  • レポートには各項目ごとに公式原文を添付しており、ご自身で照合できます

再生成:python tools/gen_rules.py

🔴 判定範囲(OK を見る前にこの段落をお読みください)

本ツールは公式 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 にまったく問題がない」という意味ではありません。両者を併せて確認すべきであり、二者択一ではありません。

既知の判定基準に関する問題(隠しません)

  • 公式 release ページには「1.85 で 23 件の CVE を修正」とありますが、wiki 上の 2026 年は合計 37 件 —— 両者は同一の集合ではありません(37 件のうち一部の修正版は 1.84 / 1.80.2 などより早いブランチのバージョンです)。 本ツールは wiki に基づき個別に判定し、「23 件」という数字は使用しません。
  • 1.85.1 と 2.73.12.1 はいずれもパッケージング修正(公式 release notes 原文:packaging issue)であり、 独立したセキュリティ修正版ではありません。1.85 に留まっていても、それによって修正が漏れることはありません。
  • CVE-2026-14682 は公式が FIPS 側で bctls-fips 1.0.24 とのみ記載し、2.0.24 / 2.1.24 は記載していません。 同種の CVE-2026-59646 の記載方法と一致しません。本ツールは公式原文に従って判定し、公式に代わって補完することはありません。
  • 「おそらく他のモジュールに属する」は、本ツールが FIPS 側で名指しされた artifact に基づいて行う推測です —— 公式は BC / BC-LTS ラインについて「before 1.85」とのみ記載し、artifact を特定していません。 このヒントは優先順位付けにのみ使用し、これに基づいて影響を受けないと断定してはなりません。

ビルド

mvn package        # 产物 target/bc-check.jar

コンパイルターゲット Java 8:緊急調査ツールは本番マシンに直接投入して実行できる必要があり、企業環境では多くの JRE が依然として 8 である。 実行時依存ゼロ —— Bouncy Castle を調査するツールは、自身が Bouncy Castle に依存してはならない。

ライセンス

Apache License 2.0


さらに詳しい調査が必要ですか?

このツールが答えるのは「自分は引っかかったか」です。以下はこのツールでは答えられないので、私にご依頼いただけます:

  • 依存関係が shade / relocate されている、またはビルド成果物がそもそも入手できない
  • 判定したいのが「この CVE が我々の呼び出しチェーン上で実際に発火するかどうか」であり、単なるバージョン一致ではない
  • 御社独自のビルドフローや社内環境に合わせたカスタマイズ、既存パイプラインへの組み込み
  • 手元にあるのが別のコンポーネントの同種の問題で、既成のツールがない

📮 [email protected] —— 状況をお知らせください。24 時間以内に 1 ページの書面回答をお返しします: できるかどうか、どこが難しいか、おおよその所要時間。この段階は無料で、事前のコミットも不要です。

終了コード

コード意味
0スキャン完了、かつすべてのファイルを実際に読み込めた、対応が必要な検出なし
4読み込めないファイルがある —— zip でない、内容が切り詰められている、または読み取り失敗

🔴 4 は 2026-09-09 に追加されました。追加した理由は明確にしておく価値があります。 それ以前は、読み込めないファイルは出力に 1 行のヒントを残すだけで、終了コードは従来どおり 0 でした —— 痕跡は人間が見るもので、CI やスクリプトが見るのは終了コードです。そのため「読み込めなかった」が自動化の中では「合格」と等しくなっていました。 破損した、暗号化された、あるいはダウンロードが不完全な jar は、静かに「問題は見つかりませんでした」になってしまいます。

「読み込めなかった」と「あなたは安全だ」は必ず別の文でなければなりません。

⚠️ 正当な空の jar は読み込めない扱いになりません(22 バイトの EOCD レコードは本物の空 zip です)、4 はトリガーされません —— 誤警告が増えると、本当の警告を誰も見なくなります。

その他の終了コードの意味は、上記の各判定段階と使い方の説明を参照してください。

ツールをダウンロード