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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
jackson-check — jackson-databind + jackson-core の26件のセキュリティアドバイザリ自己点検:座標ごとに1件ずつ突き合わせて、本当に適切なバージョン(2.18.11/2.21.7/2.22.3/3.1.7/3.2.3、2.21.6 ではもはや不十分)を示し、ソースコードをスキャンしてノイズを低減し、実際に何件該当するかを伝えます。GitHub のグローバルライブラリに未収録で、Dependabot が報告しない1件(jackson-core の件で、databind を上げても同様に該当)を含みます CVE-2026-54515 / CVE-2026-54512 | Kitploit
ツール/GitHubGitHub/xiaoqimikko/jackson-check
脆弱性スキャナー静的コード分析 (SAST)脆弱性分析DevSecOpsサプライチェーンセキュリティ
GitHubxiaoqimikko/jackson-check

jackson-check

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

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →

概要

jackson-databind + jackson-core の26件のセキュリティアドバイザリ自己点検:座標ごとに1件ずつ突き合わせて、本当に適切なバージョン(2.18.11/2.21.7/2.22.3/3.1.7/3.2.3、2.21.6 ではもはや不十分)を示し、ソースコードをスキャンしてノイズを低減し、実際に何件該当するかを伝えます。GitHub のグローバルライブラリに未収録で、Dependabot が報告しない1件(jackson-core の件で、databind を上げても同様に該当)を含みます CVE-2026-54515 / CVE-2026-54512

共有

jackson-check

jackson-databind + jackson-core の計26件のセキュリティアドバイザリを自己チェックするツール。依存ゼロの単一jarで、ネットワーク接続不要。

これはDependabotでは答えられない3つの問いに答えます:

  1. Dependabotが収録していないあの件に、自分は該当しているか? —— 2026-10-05時点で残っているのはjackson-coreのCVE-2026-68498の1件のみ(「v0.3.0」の節を参照)。
  2. この26件のうち、自分は実際に何件該当しているか? —— ソースコードをスキャンしてトリガー条件(@JsonView / ポリモーフィック型 / 大文字小文字を区別しないマッチング……)を探し、「影響を受けるバージョンが入っている」というノイズを「実際にその機能に該当している」に絞り込みます。
  3. 結局どのバージョンに上げればいいのか? —— 各advisoryが示す修正バージョンは互いに一致していないため、1件ずつ積集合を取ることで初めて答えが出ます。
java -jar jackson-check.jar ./target ./src

🔴 v0.4.0(2026-10-05):「一度で全部修正」のバージョンがまた変わった —— 2.18.11 / 2.21.7 / 2.22.3 / 3.1.7 / 3.2.3

09-30 と 10-01 に、FasterXML はさらに 4 件の high(いずれも 7.5、すべてサービス拒否)を公開した:

番号座標主題トリガー条件
CVE-2026-91776jackson-databind未知の type id ごとにプロセスライフサイクルのキャッシュに 1 件残り、メモリが増える一方@JsonTypeInfo(use = Id.NAME, defaultImpl = …) + 攻撃者が type id を制御可能 + mapper を長期間再利用
CVE-2026-91777jackson-databind前方参照を逆順で定義補完する際の比較回数が約 N²/2(N=2000 → 2,003,000 回)信頼できない JSON を @JsonIdentityInfo 付きのコレクションや Map にデシリアライズする
CVE-2026-89425jackson-core不正な token が例外メッセージに丸ごと連結され、maxErrorTokenLength の制限を受けないcreateParser(DataInput) の経路のみ;公告には緩和できる設定はないと明記
CVE-2026-89407jackson-coreNumberInput.looksLikeValidNumber() の正規表現による二次関数的バックトラック(16 万文字で実測 74.4 秒)JSON 内の文字列を数値フィールドにバインドする(databind のデフォルト動作);この経路は maxNumberLength(デフォルト 1000)ではなく maxStringLength(デフォルト 2000 万)で制約される

2 つの座標の修正版は同じ番号:2.18.11 / 2.21.7 / 2.22.3 / 3.1.7 / 3.2.3(Central からすべてダウンロード可能; 89407 は 3.2 系では 3.2.2 で修正、89425 は 3.2.3 が必要なので、大きい方を取る)。

したがって v0.2.0 / v0.3.0 が出力する 2.18.10 / 2.21.6 / 2.22.2 / 3.1.6 / 3.2.2 は 09-30 以降は不十分である。 旧バージョンの jar はこのことを知らない —— v0.4.0 に替えて再スキャンしてほしい。

⚠️ この 4 件は Dependabot の盲点ではない:公開当日に GitHub グローバルアドバイザリデータベースに登録され、Dependabot は正常に警告する。 v0.4.0 がこれらを取り込んだのは、「どのバージョンに上げるべきか」という答えを正しく保つためだけである。

🔴 同時に v0.2.0 の主張を 1 つ訂正する:下の「v0.2.0」の節に書かれた「あの 4 件は GitHub グローバルアドバイザリデータベースに収録されておらず、 Dependabot は報告しない」は09-14 時点では成立していたが、2026-09-28 以降は成立しない —— 4 件すべてがグローバルデータベースに収録済みである (gen_rules.py の ASSERT2 を 10-05 に再実行:databind 側の盲点 4 → 0)。 現在まだ照会できないのは jackson-core の CVE-2026-68498 だけである。

🔴 v0.3.0(2026-09-21):jackson-core は別の座標であり、databind をスキャンしても見つからない

v0.2.x の判定表は全体が jackson-databind という 1 つの artifactId だけだった。そのため FasterXML が jackson-core リポジトリで公開した 7 件のアドバイザリを、このツールは1 件もスキャンできなかった —— しかもそのことでエラーを出すわけでもなく、ただ静かにすべての jackson-core-*.jar を飛ばしていた。 「スキャンされなかった」と「あなたは安全だ」はレポート上ではまったく同じに見える。

v0.3.0 は判定の粒度を advisory × groupId × 区間 から advisory × groupId × artifactId × 区間 に変更し、 判定、交差の計算、「この座標はスキャンされなかった」のすべてを完全な座標をキーにするようにした。

最も注意すべき 1 件 —— CVE-2026-68498(high 7.5、2026-09-12): StreamReadConstraints.maxNameLength(デフォルト 5 万文字)が文字入力経路では効いていなかった。 ReaderBasedJsonParser が属性名を蓄積する際に呼ばれるのは文字列の長さ上限(デフォルト 1 億、約 2000 倍)であり、 本来の name 検証は key 全体をスキャンし終えてから実行される —— その時点で約 200MB がすでに確保されている。 単一の超長い JSON key だけでよく、デフォルト設定のままでも該当する。

  • 影響範囲:>= 2.16.0, <= 2.18.9 → 2.18.10 · >= 2.19.0, <= 2.21.5 → 2.21.6 · >= 2.22.0, <= 2.22.1 → 2.22.2 · 3.x(tools.jackson.core)<= 3.1.5 → 3.1.6 · <= 3.2.1 → 3.2.2
  • バイト入力は該当しない:UTF8StreamJsonParser はバッファを拡張するたびに再検証する。 byte[] / InputStream からパースする場合は影響を受けず、String / Reader / char[] からパースする場合のみ該当する。
  • バイトコードによる実測は双方向で確認:validateNameLength の呼び出しは修正版の ReaderBasedJsonParser にのみ存在し、 該当版には存在しない(2.18.9→2.18.10 · 2.21.5→2.21.6 · 3.1.5→3.1.6 の 3 系統すべてで再現)。

⚠️ ツールの能力の限界、誤解を避けるためにここに書いておく:本ツールは jar のバージョンは判定できるが、 あなたの呼び出し方までは判定できない —— readValue(someStringVariable, …) という最もよくある書き方では、 テキストスキャンではその変数が String なのか byte[] なのか判別できない。 したがって「トリガー条件が見つからない」は影響を受けないという意味ではない。レポートにもそう印字している。

🔴 「Dependabot は jackson-core に対して全く無力」と読んではいけない:jackson-core のあの 7 件のうち、 GitHub のグローバル脆弱性データベースで見つからないのは CVE-2026-68498 の 1 件だけで、残り 6 件はすでに収録済みで Dependabot も正常に警告する。 この 1 件は gen_rules.py の ASSERT-C2 が再実行のたびに再確認しており、数字が変われば生成を拒否する。

v0.2.0(2026-09-14):08-21 / 09-01 にさらに 4 件公開されたが、当時 GitHub のグローバル脆弱性データベースには未収録だった

🔴 本節は 09-14 時点の記録で、2 か所がすでに古くなっている(上記「v0.4.0」参照):① この 4 件は 2026-09-28 にグローバルデータベースへ収録され、 Dependabot は現在警告する;②「一度に修正し終える」バージョンはもはや 2.18.10 / 2.21.6 / 3.1.6 ではない。原文はそのまま残し、削除しない。

FasterXML は自社リポジトリの Security ページに新たに 4 件を公開した:

番号レベルテーマ修正版
CVE-2026-68497high 7.5文字列を javax.xml.datatype.Duration / XMLGregorianCalendar にバインドする際、数値の長さに上限がない → CPU DoS(デフォルト mapper で発生可能)2.18.10 / 2.21.6 / 2.22.2 / 3.1.6 / 3.2.2
CVE-2026-19032medium 5.3java.nio.file.Path のデシリアライズで URI scheme が制限されず、任意の登録済み FileSystemProvider を駆動可能同上
CVE-2026-83557medium 5.6デフォルトの PolymorphicTypeValidator の拒否リストに Comparable が漏れている同上
CVE-2026-77310medium 5.3CVE-2026-54514 の修正が不完全:InetAddress 分岐が依然として即座に DNS 解決を行う2.18.9 / 2.21.5 / 2.22.1 / 3.1.5 / 3.2.1

項目ごとに実測:

  • GitHub のグローバル advisory データベースを GHSA 番号で検索するとすべて 404、座標で逆引きしても見つからない —— Dependabot は警告しない。 対照的に、以前の数件は公開後 511 日でグローバルデータベースに収録された(06-16 → 06-23、07-10 → 07-21)が、この 4 件は 09-14 時点で既に 1324 日経過している。
  • OSV を Maven 座標で検索しても見つからない:これらの CVE レコードには Git のコミット範囲しかなく、jackson-databind:2.21.5 のクエリは空を返す。
  • そのため v0.1 が示した「一度に修正し終える」バージョン 2.18.9 / 2.21.5 / 3.1.5 では不十分になり、新しい答えは 2.18.10 / 2.21.6 / 2.22.2 / 3.1.6 / 3.2.2(Central ですべてダウンロード可能)。
  • advisory 原文では 77310 の 2.22 系における修正版が 2.21.1 と書かれている(範囲は >= 2.22.0, < 2.22.1 なのに)が、本ツールは範囲に従って 2.22.1 に訂正し、生成時に出力する。
# 照 v0.1 的建议已经升到 2.21.5 的项目
java -jar jackson-check.jar ./lib ./src
#   你的版本落在受影响区间内的:3 条
#   其中 Dependabot 会报的:0 条
#   🔴 其中 Dependabot 看不见的:3 条(GitHub 全局漏洞库还没收录,按 GHSA 号查 404)
#   现在 2.21.5  →  升到 2.21.6

2つのトリガー条件スキャンを追加:

  • CVE-2026-19032:advisory の原文では、JDK 標準の provider のみの場合は結果は無害とされています。本ツールはアーティファクト内の META-INF/services/java.nio.file.spi.FileSystemProvider をスキャンし、サードパーティの provider を列挙します(実測で jimfs を認識できます)。 ソースコードに java.nio.file.Path があり、依存関係にサードパーティの provider がある場合にのみ「すべて成立」と判定します。
  • CVE-2026-68497:javax.xml.datatype.Duration / XMLGregorianCalendar のみを認識し、java.time.Duration は認識しません(あれはどこにでもあり、認識したらノイズ低減にならないため)。

🔥 3つの実測結論(v0.1、2026-08-07;バージョン番号は v0.2.0 で更新済み)

一、advisory で最も多く出現するバージョンに上げても、依然として3件に該当する

2026年のこの11件のうち、8件に修正版が 2.21.4 / 2.18.8 / 3.1.4 と書かれている。それに従ってアップグレードした人は修正完了だと思った。

実際に1件ずつ交差を求めた答えは:

メンテナンスブランチadvisory 上の最多出現本当に完全なバージョン
2.18.x2.18.82.18.9
2.21.x2.21.42.21.5
2.22.x—2.22.1
3.1.x3.1.43.1.5
3.2.x—3.2.1

目標を最も高く引き上げるのはこの3件:

  • CVE-2026-54515 —— 大文字小文字を区別しないデシリアライズがプロパティごとの @JsonIgnoreProperties をバイパスする

  • CVE-2026-59889 —— @JsonView が @JsonUnwrapped コンテナプロパティに対して無効になる

  • 🔴 GHSA-mhm7-754m-9p8w —— CVE 番号なし、advisory の原文自体にこう書かれている:

    この修正は 2.21 や 2.18 にバックポートされることはなかった… 公開されたアドバイザリに従ってアップグレードした 2.21.4 および 2.18.8 のユーザーは依然として脆弱なままである

    これはパッチギャップである:3.x 系では修正されたが、2.18 / 2.21 系へのバックポートが漏れた。CVE 番号がないため、CVE 番号で検索しても見つからない。

一度実行すれば確認できる:

# 已经升到 2.21.4 的项目
java -jar jackson-check.jar ./lib ./src
#   Dependabot 会报给你:3 条
#   🔥 注意:如果你照着 advisory 里出现最多的那个修复版升,以下 3 条仍然中

二、Jackson 3 は groupId を変更したが、advisory が2つの座標のバージョン範囲を取り違えて貼り合わせていた

座標Maven Central 上で実際に公開されたもの
com.fasterxml.jackson.core:jackson-databind2.x のみ
tools.jackson.core:jackson-databind3.x のみ

一方、advisory の構造化フィールドには:

  • com.fasterxml.jackson.core には 3.x の区間が 6 件 登録されており、修正版 3.1.4 → その座標では HTTP 404
  • tools.jackson.core には 2.x の区間が 1 件 登録されており、修正版 2.21.4 → 同様に HTTP 404

advisory をそのままコピーするツールは、存在しないものをインストールさせようとする。 本ツールは判定表を生成する際、1 件ずつ HEAD リクエストで実際の取得可否を検証し、取得できないものはレポートに明記し、アップグレード推奨として出力しない。

2つの座標の artifactId と jar ファイル名は完全に同一で、META-INF の中だけが区別できる —— そのため本ツールは座標で判定し、ファイル名では判定しない。

ツールをダウンロード