zlib untgz ユーティリティのバッファ・オーバーフローの脆弱性 CVE-N/A:メモリ破損の恐れ

Critical Zlib Vulnerability Let Attackers Trigger Buffer Overflow by Invoking untgz

2026/01/12 CyberSecurityNews — zlib に同梱される untgz ユーティリティのバージョン 1.3.1.2 に発見されたのは、深刻なグローバルバッファ・オーバーフローの脆弱性 CVE-N/A である。攻撃者は、細工したコマンドライン入力を介してメモリを破壊し、悪意あるコードを実行する可能性がある。この欠陥は、untgz ユーティリティの TGZfname() 関数に存在する。この関数は、ユーザーが指定したアーカイブ名を処理する際、入力サイズの検証を行わずに strcpy() を呼び出す実装となっている。その結果、1,024 バイト固定長の静的グローバル・バッファに対して境界を超えるデータコピーが発生し、メモリ破壊が引き起こされる。

技術的な詳細

この脆弱性の根本原因は、不適切な入力処理にある。具体的には、アーカイブ名が “argv[]” パラメータから直接取得され、境界チェックを行わずにグローバル静的配列へコピーされるという問題が生じている。

そのため、この関数の呼び出し直後に、すなわちアーカイブの解析や検証が行われる前にオーバーフローが発生する。そのため、この脆弱性はコマンドライン引数のみを用いて容易に悪用可能である。 セキュリティ研究者の検証によると、1,024 バイトを超えるアーカイブ名を指定することで、バッファ終端を超える範囲外書き込みが発生し、メモリ破損に至ることが実証されている。

AttributeDetails
CVE IDNot yet assigned
Affected Softwarezlib untgz utility
Affected Versionv1.3.1.2
Vulnerability TypeGlobal Buffer Overflow
CWECWE-120 (Buffer Copy without Checking Size of Input)
Attack VectorCommand-line input
ImpactDenial of Service, Memory Corruption, Potential Code Execution

この脆弱性による潜在的な影響として挙げられるのは、サービス拒否 (DoS) によるクラッシュ/隣接するグローバル・メモリ・オブジェクトの破損/未定義の動作などである。 また、さらに深刻な点として、コンパイラ設定/システム・アーキテクチャ/ビルド・フラグ/メモリ・レイアウトに応じて、攻撃者によりコード実行に至る可能性がある。

研究者たちによる、AddressSanitizer (ASAN) を用いた具体的な実証実験では、4,096 バイトのファイル名引数を指定して untgz を呼び出すことで、この脆弱性の再現に成功している。 その結果、ASAN の出力から確認されたのは、脆弱なメモリアドレスに対する 2,001 バイトの書き込みと、それに伴うグローバル・バッファ・オーバーフローの発生だった。

特筆すべきは、このオーバーフローがスタック・メモリではなくグローバル・メモリへ影響する点である。これにより、関数スコープを超えた破損が持続され、後続のプログラム動作に影響を及ぼす可能性が生じる。総論として、この脆弱性の悪用は特別な権限を必要とせず、攻撃の複雑さも低い。したがって、影響を受ける zlib の untgz ユーティリティを使用するシステムは、きわめて危険な状況にある。