CVE-2026-91776 名前ベースポリモーフィズムのメモリリーク注意点
この記事はAIがNVDのCVE情報をもとに要約・生成したものです。影響範囲や対策は、必ずNVDおよび各ベンダーの公式情報をご確認ください。
CVE-2026-91776は、FasterXML jackson-databindのTypeDeserializerBase._findDeserializer()に存在する脆弱性です。名前ベースのポリモーフィズムを有効にし、デフォルト実装の代替手段を設定しているアプリケーションにおいて、攻撃者が一意の未知のタイプIDを繰り返し送信することで、メモリリークを引き起こす可能性があります。キャッシュされたデセリアルライザの数に制限がなく、長期間にわたってObjectMapperが再利用される場合、メモリ使用量が増加し、サービスの停止を引き起こす恐れがあります。確認時は、アプリケーションが名前ベースのポリモーフィズムとデフォルト実装を組み合わせて使用しているか、長寿命のObjectMapperが使われていないかを確認してください。パッチ適用により、未認識タイプIDのキャッシュを停止し、キャッシュサイズとタイプID長を制限する対応が行われています。
- NVD Detail (NVD) [日本語で表示]
ソクラテスの問い、プラトンの備え
プラトンよ、この脆弱性は「名前ベースのポリモーフィズム」に関連していると聞いているが、それによってアプリケーションがどう影響を受けるのか、哲学的に問うてみよう。この問題は、技術の設計が「無限に拡張可能なキャッシュ」を許容した結果ではないか?つまり、設計者が「制限」を考慮しなかったという倫理的過失ではないか?
ソクラテス、その問いは鋭いですが、現場ではまず「アプリケーションが本当にこの設定を有効にしているか」を確認するのが先です。例えば、コードに@JsonTypeInfo(use = Id.NAME, defaultImpl = …)のような設定が存在するか、ObjectMapperがリクエストごとに再生成されていないかをチェックする必要があります。そして、パッチ適用後はキャッシュサイズが制限されていることを確認する手順を、変更管理書に記録するのが肝要です。
なるほど。では、この脆弱性は「技術の設計が人間の予測を超える」ことによるものではないか?もし攻撃者が「未知のタイプIDを10,000回送信する」という行動をとれば、設計の想定外にメモリが増加する。これは、倫理的に「設計者がリスクを過小評価した」責任ではないか?
その通りですが、現場では「監視」が重要です。メモリ使用量の変化を監視ツールで追跡し、異常を検出したら直ちにベンダーの情報を確認する必要があります。また、パッチ適用後も、キャッシュが本当に制限されているかをテストで確認する手順を、運用ポリシーに組み込むべきです。
では、この問題に学ぶべきことは何か?技術の設計は「無限」に耐えられるべきではないという教訓ではないか?
その通りです。しかし、現実には「長期運用されるObjectMapperの存在」を前提に、設計者がリスクを想定する必要があります。Linux運用者としては、まずは「この設定が本当に使われているか」を確認し、パッチ適用の後は「ベンダーの対応情報」を元に、変更管理の文書を更新するのが基本です。そして、監視の仕組みを強化して、再発を防ぐことが、倫理的な責任でもあります。
関連キーワード: bind