| タイトル | FasterXML, LLCのJackson-databindにおける複数の脆弱性 |
|---|---|
| 概要 | jackson-databindはJackson Data Processorの汎用データバインディング機能およびツリーモデルを含んでいます。バージョン2.10.0から2.18.8、2.21.4、3.1.4までの間、jackson-databindのPolymorphicTypeValidator(PTV)は多態的なデシリアライズを保護する主要な安全機構です。多態的な型指定が有効で、型識別子にジェネリックパラメータが含まれる場合(つまり型ID文字列に「」が含まれる場合)、DatabindContext._resolveAndValidateGeneric()は設定されたPTVに対して生のコンテナクラス名(「」以前の部分文字列)のみを検証します。コンテナ型が承認されると、このメソッドはTypeFactory.constructFromCanonical()を使用して完全なカノニカル型文字列を解析し、ネストされた型引数をPTVで検証することなく完全にパラメータ化された型を返します。ネストされた型引数はその後デシリアライズ中に解決およびインスタンス化され、Beanとしてプロパティが設定されます。攻撃者が型IDを制御できる場合、許可されたコンテナのジェネリック型パラメータとして拒否されたクラスを配置することが可能です。例えば、java.util.ArrayListcom.evil.Gadgetはjava.util.ArrayListのみが許可リストにある場合でも、コンテナはPTVチェックを通過します。com.evil.GadgetはClass.forName(name, true, loader)でロードされてインスタンス化され、そのプロパティは攻撃者が制御するJSONから設定されます。これにより、明示的に構成されたPTV許可リストが完全に回避されます。この脆弱性はバージョン2.18.8、2.21.4および3.1.4で修正されました。 |
| 想定される影響 | ・当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。 ・当該ソフトウェアが扱う全ての情報が書き換えられる可能性があります。 ・当該ソフトウェアが完全に停止する可能性があります。 |
| 対策 | ベンダ情報を参照して適切な対策を実施してください。 |
| 公表日 | 2026年6月23日0:00 |
| 登録日 | 2026年6月29日11:06 |
| 最終更新日 | 2026年6月29日11:06 |
| CVSS3.0 : 重要 | |
| スコア | 8.1 |
|---|---|
| ベクター | CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H |
| FasterXML, LLC |
| Jackson-databind 2.10.0 以上 2.18.8 未満 |
| Jackson-databind 2.19.0 以上 2.21.4 未満 |
| Jackson-databind 3.0.0 以上 3.1.4 未満 |
| No | 変更内容 | 変更日 |
|---|---|---|
| 1 | [2026年06月29日] 掲載 |
2026年6月29日11:06 |
| 概要 | jackson-databind contains the general-purpose data-binding functionality and tree-model for Jackson Data Processor. From 2.10.0 until 2.18.8, 2.21.4, and 3.1.4, jackson-databind's PolymorphicTypeValidator (PTV) is the primary safety mechanism guarding polymorphic deserialization. When polymorphic typing is enabled and a type identifier contains generic parameters (i.e. the type ID string contains <), DatabindContext._resolveAndValidateGeneric() validates only the raw container class name (the substring before <) against the configured PTV. If the container type is approved, the method parses the full canonical type string via TypeFactory.constructFromCanonical() and returns the fully parameterized type without ever validating the nested type arguments against the PTV. The nested type arguments are then resolved, instantiated, and populated as beans during deserialization. An attacker who controls the type ID can therefore place a denied class as a generic type parameter of an allowed container — for example java.util.ArrayList<com.evil.Gadget> when only java.util.ArrayList is allow-listed. The container passes the PTV check; com.evil.Gadget is loaded via Class.forName(name, true, loader), instantiated, and its properties are set from attacker-controlled JSON. This completely bypasses an explicitly configured PTV allow-list. This vulnerability is fixed in 2.18.8, 2.21.4, and 3.1.4. |
|---|---|
| 公表日 | 2026年6月24日6:17 |
| 登録日 | 2026年6月27日4:16 |
| 最終更新日 | 2026年6月28日6:01 |
| 構成1 | 以上 | 以下 | より上 | 未満 | |
| cpe:2.3:a:fasterxml:jackson-databind:*:*:*:*:*:*:*:* | 2.10.0 | 2.18.8 | |||
| cpe:2.3:a:fasterxml:jackson-databind:*:*:*:*:*:*:*:* | 2.19.0 | 2.21.4 | |||
| cpe:2.3:a:fasterxml:jackson-databind:*:*:*:*:*:*:*:* | 3.0.0 | 3.1.4 | |||