つみかさね

CVE-2026-54512

High(8.1)

jackson-databindのPolymorphicTypeValidatorバイパス CVE-2026-54512:影響範囲と対応方法

公開日: 2026-06-29データソース: NVD, GitHub Advisory

影響を受けるソフトウェア

製品ベンダー影響バージョン
jackson-databindFasterXML2.10.0〜2.18.7, 2.21.0〜2.21.3, 3.0.0〜3.1.3

対応ガイド

high|推奨セキュリティ修正影響: 限定的

推奨アクション

  1. 1使用中のjackson-databindのバージョンを確認する
  2. 2ポリモーフィック型デシリアライゼーション(@JsonTypeInfo、activateDefaultTyping等)が有効かどうか確認する
  3. 3該当する場合、jackson-databind 2.18.8 / 2.21.4 / 3.1.4以降へアップグレードする
  4. 4Spring BootなどのBOMを使用している場合、フレームワーク自体のアップグレードで解決できるか確認する

影響対象

ポリモーフィック型デシリアライゼーションを使用するjackson-databind利用者

補足

  • -ポリモーフィック型デシリアライゼーションを使用していない場合は実質的なリスクは低い
  • -外部からのJSONを受け付けない完全に内部向けのAPIでは優先度を下げられる
CVEjackson-databindJavaデシリアライゼーションPolymorphicTypeValidatorセキュリティ修正

30秒で判断

対応すべき人

  • jackson-databind 2.10.0〜2.18.7、2.21.0〜2.21.3、3.0.0〜3.1.3を使用している
  • かつ、ポリモーフィック型デシリアライゼーションが有効な環境(@JsonTypeInfoenableDefaultTyping()activateDefaultTyping()等)
  • かつ、PolymorphicTypeValidator(PTV)による許可リスト制御を実施している

対応不要な人

  • jackson-databindを使用していない
  • ポリモーフィック型デシリアライゼーションを使用していない
  • すでに修正版(2.18.8 / 2.21.4 / 3.1.4以降)を使用している
  • 外部から制御されたJSONを受け付けない完全に信頼された入力のみを処理している

確認コマンド

# Mavenプロジェクト
mvn dependency:tree | grep jackson-databind

# Gradleプロジェクト
./gradlew dependencies | grep jackson-databind

概要

jackson-databindのPolymorphicTypeValidator(PTV)において、ジェネリクス型パラメータを含む型IDの検証が不完全です。

型ID文字列に<が含まれる場合(例:java.util.ArrayList<com.example.Target>)、DatabindContext._resolveAndValidateGeneric()はコンテナクラス名(<の前の部分)のみをPTVで検証します。コンテナ型が承認されると、ジェネリクス型引数(<>内の型)を検証なしにTypeFactory.constructFromCanonical()で解決・インスタンス化します。

攻撃シナリオの例: java.util.ArrayListが許可リストに含まれている場合、java.util.ArrayList<com.evil.Gadget>という型IDを送信することで、com.evil.Gadgetが許可リストにない場合でもClass.forName()でロード・インスタンス化されます。

CVSSベクトル

項目
Attack VectorNetwork
Attack ComplexityHigh
Privileges RequiredNone
User InteractionNone
ScopeUnchanged
ConfidentialityHigh
IntegrityHigh
AvailabilityHigh
CVSSスコア8.1 (High)

影響を受けるソフトウェア

製品影響バージョン修正バージョン
jackson-databind2.10.0〜2.18.72.18.8
jackson-databind2.21.0〜2.21.32.21.4
jackson-databind3.0.0〜3.1.33.1.4

修正バージョンと回避策

修正版へのアップグレード:

<!-- Maven: pom.xml -->
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.18.8</version>
</dependency>
// Gradle: build.gradle
implementation 'com.fasterxml.jackson.core:jackson-databind:2.18.8'

注意: Spring Boot等のフレームワークを使用している場合、親POM/BOMで管理されるjackson-databindバージョンがあります。フレームワークのアップグレードによって解決できる場合があります。

暫定的な回避策:

  • 外部から制御されたJSONでのポリモーフィック型デシリアライゼーションを無効化する
  • 信頼されていない入力を処理するエンドポイントでジェネリクス型を含む型IDを拒否するカスタムバリデーションを追加する

関連リンク


データソース: NVD (NIST), GitHub Advisory Database
AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。

Xでシェアはてブ
データソース: NVD (NIST), OSV (Google), GitHub Advisory Database, JVN iPedia (IPA/JPCERT/CC)
AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。