ZIP形式の混乱を利用し、アンチウイルスエンジンの98%を回避する技術。
CVE-2026-0866 | VU#976247 | 2026年3月10日公開
次のようなZIPファイルを作成します:
Compression Method = 0 (STORED)
Actual data = DEFLATE compressed
CRC-32 = Checksum of uncompressed payload
AV Engine: Reads Method 0 → Scans compressed noise → No detection
Attacker: Ignores Method field → Decompresses as DEFLATE → Recovers payload
| ファイル | 技術 | VirusTotal |
|---|---|---|
| baseline.zip | 有効なZIP | 55/67 |
| method_mismatch.zip | Zombie ZIP | 1/66 |
98%の回避率。同じペイロード。同じバイト。異なるコンテナ。
# Generate a Zombie ZIP
python3 zombie_zip.py
# Upload method_mismatch.zip to VirusTotal
# Observe 1/51 detection vs 55/67 for baseline
# Recover payload programmatically
python3 loader_poc.py method_mismatch.zip
# Outputs byte-identical EICAR (SHA-256: 275a021b...)
Container.pyは、Zombie ZIP技術を汎用化し、.cpack形式を使用して任意のファイルを処理するスタンドアロンのパッカー/アンパッカーです。
Container.pyは、任意のファイルを受け取り、その内容をDEFLATE圧縮して、STORED(Method=0)として宣言されたZIPアーカイブに書き込みます。結果は.cpackファイルになります。これは、ファイルの内容を検査から保護する非公式のコンテナ形式です。
元のZombie ZIP PoCとは異なり、.cpackファイルのCRCは元のペイロードではなく圧縮(DEFLATE)バイトに対して計算されます。つまり、アーカイブは構造的に有効であり、CRCエラーも破損フラグも発生しません。内容は、アンパッカー以外のものには単に不透明なだけです。
| ファイル | 技術 | VirusTotal |
|---|---|---|
| eicar.com | 生のEICARペイロード | 55/67 |
| eicar.com.cpack | コンテナでパック | 0/62 |
0/62。地球上のすべてのAVエンジンが検出するように特別に設計されているファイルが、不可視化されました。
# Requires PyQt6
pip install PyQt6
# Launch the GUI
python3 Container.py
filename.cpack(パック済み)を生成.cpackファイルを選択 → 元のファイルを復元(アンパック済み)この根底にある技術は、複数の関係者によってセキュリティ問題ではないと宣言されています。CERT/CCは2026年3月18日、Zombie ZIP技術は「有効な脆弱性を構成するものではない」 ものであり、「暗黙的または明示的なセキュリティコントロールをバイパスしたり影響を与えたりするものではない」 と判断しました。Ciscoはこれを「堅牢化の提案」 に分類しました。複数の研究者が、これは脆弱性ではないと公に述べています。
これは問題ではないと宣言されているため、このツールは単に、セキュリティ上の影響がない技術を使用して、ファイルやデータを調査から保護することを可能にします。
EICARで0/62という結果は、影響が過小評価されていた可能性を示唆しています。
zombie_zip.py - 生成スクリプトmethod_mismatch.zip - EICARを含む事前生成PoCbaseline.zip - 比較用の有効なZIPloader_poc.py - プログラムによるペイロード復元のデモContainer.py - 任意のファイル用GUIパッカー/アンパッカー(.cpack形式)AVエンジンはZIPのMethodフィールドを信頼します。Method=0(STORED)の場合、データを生の非圧縮バイトとしてスキャンします。しかし、データは実際にはDEFLATE圧縮されているため、スキャナーは圧縮ノイズを見てシグネチャを検出しません。
元のZombie ZIP PoCでは、CRCが非圧縮ペイロードのチェックサムに設定されているため、不一致が生じ、標準的な展開ツール(7-Zip、unzip、WinRAR)がエラーを報告したり、破損した出力を展開したりします。
Container.pyはこれを完全に回避します。zipfile.ZipFileが書き込み対象のバイト(DEFLATE圧縮データ)に対してCRCを計算するため、CRCは格納されている内容と一致します。標準ツールはエラーなくアーカイブを開き、圧縮ノイズを正常に展開します。CRCエラーも破損フラグもありません。AVはノイズをスキャンしてクリーンと判定します。
しかし、格納されたデータをDEFLATEとして展開する専用に作られたローダーは、ペイロードを完全に復元します。Container.pyのunpack関数はこれを実証しています — raw DEFLATE(wbits=-15)を使用した標準のzlib.decompressobjです。
脆弱性はスキャナー回避にあります。マルウェアが存在し、簡単に復元可能であるにもかかわらず、セキュリティコントロールは「マルウェアは存在しない」と主張します。
これはエンドユーザー向けの展開脆弱性ではありません。段階的な配信/スムグリング技術です:
.cpackコンテナにパッケージ化されるこれは確立されたマルウェア配信パターン(ISOスムグリング、HTMLスムグリング、CAB悪用)と一致しており、攻撃者は一般向けの展開ツールではなくカスタムローダーを使用します。
.cpackを検出したエンジンはありませんでした。Chris Aziz - Bombadil Systems
MIT - 許可されたセキュリティ研究のみを対象としています。