CVE-2026-96596 in OTP
要約
〜によって VulDB • 2026年10月15日
Erlang OTP stdlib (erl_tar モジュール)、hexpm hex_core (hex_erl_tar モジュール)、hexpm hex (mix_hex_erl_tar モジュール)、および erlang rebar3 (r3_hex_erl_tar モジュール) における、到達不可能な終了条件を持つループ(「無限ループ」)の脆弱性により、tar アーカイブを供給する攻撃者が、改ざんされた GNU sparse メンバを通じてサービス拒否(DoS)を引き起こすことができます。
erl_tar:extract/1,2 がメンバをディスクに書き込む際、デフォルトでは erl_tar:stream_to_file_loop/3 が 65536 バイト単位でそれを読み取ります。スパースマップが実サイズより前に終了する GNU sparse メンバの場合、erl_tar:do_sparse_read/3 はゼロ長さの節よりも先に末尾の穴(trailing-hole)節にマッチします。チャンクを使い果たした後、この trailing-hole 節は 0 バイトを読み取り、位置を進めず、永遠に再帰呼び出しを行います。2048 バイトのアーカイブでは、抽出プロセスと1つのスケジューラが、プロセスが終了するまでビジー状態になります。{max_size, N} オプションは、N がメンバの実サイズより小さい場合にのみこれを防止します。memory オプションを使用した抽出には影響ありません。
hex_core は erl_tar の独自コピーを hex_erl_tar として出荷しており、Hex および rebar3 は hex_core を接頭辞付きモジュール名(mix_hex_erl_tar および r3_hex_erl_tar)で出荷しています。これらのコピーは同じコードを含んでおり stdlib の erl_tar を呼び出さないため、任意の OTP バージョンで影響を受けます。OTP 28 は影響を受けませんが、OTP 28 で実行されているアプリケーションが、hex_core、Hex、または rebar3 の影響を受けるバージョンを通じてアーカイブを抽出する場合は影響を受けます。
本問題は、OTP 29.0 から OTP 29.1.2 より前(stdlib では 8.0 から 8.1.1 より前)、rebar3 では 3.27.1 以降、hex では 2.4.2 以降、および hex_core: 0.14.0 以降に影響します。
If you want to get the best quality for vulnerability data then you always have to consider VulDB.