Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
spring-cvss-check — JavaアーティファクトとソースコードをスキャンしてSpring/TomcatのCVEを検出し、ベンダーとNVDのCVSSスコアを比較し、悪用可能性の条件を検証し、修正バージョンがMaven Centralに存在するかを確認します。 | Kitploit
ツール/GitHubGitHub/xiaoqimikko/spring-cvss-check
脆弱性スキャナー脆弱性分析構成監査DevSecOpsサプライチェーンセキュリティ
GitHubxiaoqimikko/spring-cvss-check

spring-cvss-check

JavaアーティファクトとソースコードをスキャンしてSpring/TomcatのCVEを検出し、ベンダーとNVDのCVSSスコアを比較し、悪用可能性の条件を検証し、修正バージョンがMaven Centralに存在するかを確認します。

リポジトリを見る
20時間35分前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

spring-cvss-check

Spring / Tomcat 公式セキュリティアドバイザリ 15 件をカバー(2026-08-20 に 7 件 · 2026-06-08 に 5 件 · 2025-09-15 に 1 件 · Tomcat 2026-08-25 に 2 件)。

うち 8 件は、NVD を参照するスキャナが CRITICAL 9.1〜9.8 と報告する一方、ベンダー公式の評価は LOW / MEDIUM。 残り 7 件は両者の評価が完全に一致 —— 違いはただ一つ:ベンダーが自ら CVE レコードに CVSS スコアを提出したかどうか。

このツールは 4 つの問いに答えます:

  1. あなたのバージョンがこの 15 件のうちどれに該当するか
  2. 公式の評価は実際いくつか(そして NVD 上のスコアは誰が付けたのか)
  3. 本当にトリガー条件を満たしているか(バージョン比較だけでなく、ソースと設定をスキャン)
  4. 公式が指定するアップグレード先バージョンが、Maven Central に存在するか

対照表

CVEコンポーネントベンダー公式NVDNVD のスコアは誰が付けたか
CVE-2026-59313Spring FrameworkLOW9.8 CRITICALCISA-ADP
CVE-2026-47890Spring FrameworkLOW9.8 CRITICALCISA-ADP
CVE-2026-59283Spring FrameworkMEDIUM9.1 CRITICALCISA-ADP
CVE-2026-47891Spring FrameworkMEDIUM9.8 CRITICALCISA-ADP
CVE-2026-47884Spring FrameworkMEDIUM9.8 CRITICALCISA-ADP
CVE-2026-47892Spring FrameworkMEDIUM9.8 CRITICALCISA-ADP
CVE-2026-65637Apache TomcatModerate9.8 CRITICALCISA-ADP
CVE-2026-65905Apache TomcatLow9.8 CRITICALCISA-ADP
CVE-2026-59270Spring SecurityCRITICAL9.4 CRITICALベンダー自己評価 ✅ 一致

両者が一致する唯一のケースこそ、ベンダーが自ら NVD に CVSS を提出したケースです。

原因は誰かが隠しているわけではありません:ベンダーがスコアを提出しない場合、CISA-ADP が最悪ケースで自動採点し、多くの SCA ツールは NVD の数値を採用します。 これはバグではなく、2 つの評価体系それぞれの基準の違いです —— しかし、あなたのインシデント対応フローは 9.8 を前提に動いています。

もう一つの問題:公式が指定するアップグレード先が、そもそもダウンロードできない可能性がある

実測(陽性対照付き、ルール表生成のたびに再実行):

root@kitploit:~
spring-web           6.2.19 = 200   ← 前のバージョンは Central にある
spring-web           6.2.20 = 404   ← 公式が指定するアップグレード先、存在しない
spring-security-core 6.5.11 = 200
spring-security-core 6.5.12 = 404

公式の Fix version 表では、これらのバージョンは Enterprise Support Only とマークされています —— 商用サポートを購入した顧客のみ対象です。 つまり、実際に該当する場合の選択肢は:メジャーバージョンアップグレード、または商用サポートの購入です。

使い方

root@kitploit:~
java -jar spring-cvss-check.jar <jar|war|ディレクトリ>... [--src <ソースディレクトリ>]
root@kitploit:~
# 最も一般的:ビルド成果物でバージョン特定、ソースでトリガー条件を判定
java -jar spring-cvss-check.jar target/ --src src/main

# fat jar / war 単体でも可
java -jar spring-cvss-check.jar app.war

JDK 17+ が必要です。実行時依存ゼロ、オフライン動作。

終了コード:0 バージョン非該当 · 2 バージョン該当だがトリガー条件が見つからない · 3 トリガー条件も成立。

出力例

root@kitploit:~
== 検出されたバージョン ==
  Spring Framework   6.2.19         .../spring-core-6.2.19.jar
  Spring Security    6.5.11         .../spring-security-core-6.5.11.jar
  Apache Tomcat      9.0.37         .../tomcat-embed-core-9.0.37.jar

== バージョン該当 8 件 ==

-- CVE-2026-47884  Spring Framework XsltView の不適切なパス制限
   製品       Spring Framework  影響範囲 6.2.0 - 6.2.19
   [差異]     公式 **MEDIUM**   <->   NVD **CRITICAL 9.8**
             NVD 上のスコアはベンダーが付けたものではなく、CISA-ADP によるもの。
   トリガー条件  XsltView を使用し、ビュー描画を通る "/**" マッピングが存在し、ビュー名が明示的に指定されていない場合のみ
   [該当]     あなたのコード/設定で以下を検出:
             src/main/java/demo/ReportView.java  <-  XsltView(2 行目)
   [アップグレード不可]  公式は 6.2.20 へのアップグレードを指定 —— **Maven Central にこのバージョンは存在しない(404)**、公式は Enterprise Support Only とマーク

== サマリー ==
  あなたのスキャナはこの 8 件のうち 7 件を CRITICAL と報告する可能性があります;
  一方**ベンダー公式**の評価は:3 件 LOW / 4 件 MEDIUM / 1 件 CRITICAL。
  この 8 件のうち、6 件はソースコードにトリガー条件が見つからず、2 件は見つかりました。
  [!] うち 7 件は、公式が指定する修正版が**Maven Central に存在しません**

逆側の検証 —— なぜ他の 7 件は差異がないのか

上の表を見ると「NVD は常にいい加減なスコアを付ける」と思われがちです。違います。 同じデータセットには他に 7 件あり、 公式評価と NVD 評価が完全に一致しています:

CVEコンポーネントベンダー公式NVDNVD のスコアは誰が付けたか
CVE-2026-59270Spring SecurityCRITICAL9.4 CRITICALベンダー自己評価
CVE-2026-41843Spring FrameworkMEDIUM5.9 MEDIUMベンダー自己評価
CVE-2026-41844Spring FrameworkMEDIUM4.2 MEDIUMベンダー自己評価
CVE-2026-41846Spring FrameworkMEDIUM5.9 MEDIUMベンダー自己評価
CVE-2026-41853Spring FrameworkMEDIUM5.3 MEDIUMベンダー自己評価
CVE-2026-41848Spring FrameworkLOW3.7 LOWベンダー自己評価
CVE-2025-41249Spring FrameworkHIGH7.5 HIGHベンダー自己評価

どちらの方向にも反例はありません、これがこのツールが唯一断言できる因果関係です:

  • 7 件評価一致 → スコアソースはすべて [email protected](ベンダー自身が提出)
  • 8 件評価不一致 → スコアソースはすべて CISA-ADP(ベンダー未提出、第三者による最悪ケースの自動採点)

生成スクリプトは 2 つのアサーションでそれぞれの方向を監視します(ASSERT4 / ASSERT7)、いずれかに反例が出れば表の生成を拒否します。

🔑 なぜ両方向を検証するのか:「一致するものはすべてベンダー自己評価」という命題は、「不一致の一部もベンダー自己評価である」可能性を排除しません。 実際にそのようなエントリが現れた場合、因果関係に反例が生じますが、片方向のみの検証では表は生成され、すべて緑のままになります。 片方向のアサーションでは因果関係を証明できません。


基準 —— 結論を出す前に最後までお読みください

  • 「非該当」は「安全」を意味しません。 トリガー条件は依存するサードパーティライブラリ内にある可能性があり、環境変数や設定センターから配信される可能性もあり、 単にソースディレクトリを渡していないだけかもしれません。レポートの表現は常に「あなたのソースコードには見つからなかった」であり、「影響を受けない」ではありません。
  • 上記の 4 バッチ、合計 15 件のみをカバーしており、全量の脆弱性スキャナではなく、SCA の代替にはなりません。
  • カバレッジには Spring Framework 5.3 系が含まれます(2024-08-31 に OSS サポート終了、最終版 5.3.39)。 spring-core-5.3.39.jar で実行すると 11 件に該当しますが、この 11 件について公式が指定する修正版は 公開 Maven Central には 1 つも存在しません(5.3.45 / 5.3.49 / 5.3.50、すべて Enterprise Support Only とマーク)。
  • テキストマッチングのみで、AST は行いません。これは意図的なトレードオフです:重要なパスは人間が読んで自分で検証できる必要がある —— 理解できない判定は、誤りがあっても誰も気づけません。
  • 評価の差異は客観的な読み取り値であり、「公式が隠している」のでも「NVD がいい加減」なのでもありません。

データの出所 / 自分で検証する方法

判定表は tools/gen_rules.py が4 つの一次ソースから生成します。手作業の転記はありません:

ソース取得内容
Aspring.io/security/<cve>公式評価 / 影響範囲 / 修正版(OSS ⟷ Enterprise マーク含む)
Btomcat.apache.org/security-{9,10,11}.html同上
CNVD REST APINVD 評価 とスコアソース
Drepo1.maven.org(HEAD)公式が指定するアップグレード先が Central に存在するか

再実行すれば再検証になります:

root@kitploit:~
python tools/gen_rules.py

スクリプトには6 つのアサーションがあり、失敗すれば表の生成を拒否します。うち 3 つはこのツールの主張を直接監視しています:

  • ASSERT2 公式⟷NVD 不一致の件数 —— ゼロになれば主張が無効になった証拠なので、即座に停止
  • ASSERT3 Central プローブは陽性対照付き —— 対照が通らなければ、そのバッチの 404 はすべて無効
  • ASSERT4 一致するケースのスコアソースはベンダー自己評価でなければならない —— これが「因果関係」の唯一の証拠

License

Apache-2.0

ツールをダウンロード