
Arquivo ZIP malformado que contorna a detecção de antivírus ao declarar Method=0 (stored) enquanto contém payload comprimido com DEFLATE.
Técnica de confusão de formato ZIP que evade 98% dos mecanismos antivírus.
CVE-2026-0866 | VU#976247 | Publicado em 10 de março de 2026
Crie um arquivo ZIP onde:
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
| File | Technique | VirusTotal |
|---|---|---|
| baseline.zip | ZIP válido | 55/67 |
| method_mismatch.zip | Zombie ZIP | 1/66 |
98% de evasão. Mesmo payload. Mesmos bytes. Contêiner diferente.
# 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 generaliza a técnica Zombie ZIP em um empacotador/desempacotador autônomo para arquivos arbitrários usando o formato .cpack.
O Container.py pega qualquer arquivo, comprime seu conteúdo com DEFLATE e o grava em um arquivo ZIP declarado como STORED (Method=0). O resultado é um arquivo .cpack — um formato de contêiner não oficial que protege o conteúdo do arquivo contra inspeção.
Diferentemente do PoC original do Zombie ZIP, o CRC em um arquivo .cpack é calculado sobre os bytes comprimidos (DEFLATE), não sobre o payload original. Isso significa que o arquivo é estruturalmente válido — sem erros de CRC, sem flags de corrupção. O conteúdo é simplesmente opaco para qualquer coisa que não seja o desempacotador.
| File | Technique | VirusTotal |
|---|---|---|
| eicar.com | Payload EICAR bruto | 55/67 |
| eicar.com.cpack | Empacotado com Container | 0/62 |
0/62. O único arquivo que todo mecanismo de AV do planeta é especificamente projetado para detectar, tornado invisível.
# Requires PyQt6
pip install PyQt6
# Launch the GUI
python3 Container.py
filename.cpack (empacotado).cpack → recupera o arquivo original (desempacotado)A técnica subjacente foi declarada por várias partes como não sendo um problema de segurança. O CERT/CC determinou em 18 de março de 2026 que a técnica Zombie ZIP "não constitui uma vulnerabilidade válida" e "não contorna nem afeta quaisquer controles de segurança implícitos ou explícitos". A Cisco classificou-a como uma "sugestão de endurecimento". Vários pesquisadores afirmaram publicamente que isso não é uma vulnerabilidade.
Como isso foi declarado um não-problema, esta ferramenta simplesmente permite proteger seus arquivos e dados de escrutínio usando uma técnica sem implicações de segurança.
0/62 no EICAR sugere que as implicações podem ter sido subestimadas.
zombie_zip.py - Script geradormethod_mismatch.zip - PoC pré-gerado com EICARbaseline.zip - ZIP válido para comparaçãoloader_poc.py - Demonstra recuperação programática de payloadContainer.py - Empacotador/desempacotador GUI para arquivos arbitrários (formato .cpack)Os mecanismos de AV confiam no campo Method do ZIP. Quando Method=0 (STORED), eles examinam os dados como bytes brutos não comprimidos. Mas os dados estão na verdade comprimidos com DEFLATE — então o scanner vê ruído comprimido e não encontra assinaturas.
No PoC original do Zombie ZIP, o CRC é definido como o checksum do payload descomprimido, criando uma incompatibilidade que faz as ferramentas de extração padrão (7-Zip, unzip, WinRAR) relatarem erros ou extraírem saída corrompida.
O Container.py evita isso completamente. Como zipfile.ZipFile calcula o CRC sobre os bytes que estão sendo gravados (os dados comprimidos com DEFLATE), o CRC corresponde ao que está armazenado. As ferramentas padrão abrem o arquivo sem erros. Elas extraem o ruído comprimido com sucesso. Sem erros de CRC. Sem flags de corrupção. O AV examina o ruído e retorna limpo.
No entanto, um loader criado especificamente para descomprimir os dados armazenados como DEFLATE recupera o payload perfeitamente. A função de desempacotamento do Container.py demonstra isso — zlib.decompressobj padrão com DEFLATE bruto (wbits=-15).
A vulnerabilidade é a evasão de scanners: os controles de segurança afirmam "nenhum malware presente" enquanto o malware está presente e é trivialmente recuperável.
Isso não é uma vulnerabilidade de extração para o usuário final. É uma técnica de entrega em estágios / contrabando (smuggling):
.cpackIsso é consistente com padrões estabelecidos de entrega de malware (contrabando por ISO, contrabando por HTML, abuso de CAB) em que os atacantes usam loaders personalizados em vez de ferramentas de extração para consumidores.
.cpack.Chris Aziz - Bombadil Systems
MIT - Somente para pesquisa de segurança autorizada.