本文へ移動
English version →
高 7.5

jackson-dataformat-smileに非同期パーサーの脆弱性、サービス妨害のおそれ

CVE-2026-104895 SecPulse初出

概要

jackson-dataformat-smileの非同期Smileパーサーに、サービス妨害(DoS)を引き起こす脆弱性が見つかりました。約10バイトの入力でおよそ2GBのメモリ確保が起きたり、負の長さで例外が発生したりして、処理スレッドが停止するおそれがあります。影響するのは3.0.0以上3.1.8未満と3.2.0以上3.2.4未満で、3.1.8または3.2.4に更新してください。

AI要約

外部の AI が作成した要約です。誤りを含むことがあります。重要な判断の前に、下の原文と参照URLを確認してください。

jackson-dataformat-smileの非同期Smileパーサーに、サービス妨害(DoS)を引き起こす脆弱性が見つかりました。約10バイトの入力でおよそ2GBのメモリ確保が起きたり、負の長さで例外が発生したりして、処理スレッドが停止するおそれがあります。影響するのは3.0.0以上3.1.8未満と3.2.0以上3.2.4未満で、3.1.8または3.2.4に更新してください。

影響パッケージ

種類パッケージ影響を受ける版直った版
FasterXML jackson-dataformat-smile
3.0.0 以上 3.1.8 未満
3.2.0 以上 3.2.4 未満
3.1.8
3.2.4
原文の説明 取得元が公開している説明をそのまま載せています (多くは英語)。

The asynchronous Smile parser (NonBlockingByteArrayParser) uses a raw-binary length prefix taken from untrusted input to allocate a byte[] before the body is read, with no upper bound and no overflow check. On the raw-binary marker 0xFD, _decodeVInt() computes (value << 6) + (i & 0x3F) without the (value >>> 25) != 0 overflow guard present in the blocking SmileParser._readUnsignedVInt, and _startRawBinary then allocates the declared length immediately.

A Smile feed of roughly ten bytes can therefore force an eager allocation of approximately 2 GB, producing an OutOfMemoryError on reactive or asynchronous Smile endpoints. A VInt crafted to overflow int yields a negative length and a NegativeArraySizeException, a RuntimeException that is not a JacksonException and so escapes the parser contract. Either outcome crashes the request or processing thread.

This is the same class of issue as CVE-2020-28491 in the CBOR parser of this library, which was fixed with a LONGEST_NON_CHUNKED_BINARY guard; the asynchronous Smile parser never received the equivalent guard. No privileges or user interaction beyond the ability to submit data for parsing are required.

出典: CVE.org (CVE Program・cvelistV5) NVD

参照URL

当サイトでは、アクセス解析と広告の効果測定のために Cookie を使います。株式会社Game のサイト共通の設定です。 詳しく