SecTech ›

7-Zip a PeaZip pod lupou: kdo za nimi stojí, jak pracují a co mají uvnitř

Nejpopulárnější bezplatný archivátor má jediného autora, desítky parserů napsaných v C++ a žádnou automatickou aktualizaci. Rozebíráme 7-Zip na součástky a zjišťujeme, co doopravdy sedí v PeaZipu, po kterém sahají instituce hledající náhradu.

Autor: CybF1sh 11 min čtení

7-Zip najdete téměř na každém pracovním počítači s Windows. Správce ho instaluje „pro jistotu“, polovina programů, které musí rozbalit balíček s aktualizací, si ho nese ve svém adresáři a uživatelé jím „šifrují“ soubory před odesláním mailem. Právě proto se vyplatí vědět, odkud pochází, jak je postavený a kde má slabá místa — a co přesně dostane ten, kdo přesedlá na PeaZip.

Kdo stojí za 7-Zipem

7-Zip napsal a od úplného začátku vyvíjí Igor Pavlov — ruský programátor. První verze vyšla v roce 1999 a program po více než čtvrt století zůstal v praxi projektem jediného člověka. Nestojí za ním firma, nadace ani tým s rozdělenými úkoly: tentýž člověk píše kód, přijímá hlášení chyb, vydává verze a zveřejňuje je na 7-zip.org.

Několik rysů tohoto modelu má význam pro bezpečnost:

  • Kód je otevřený, proces nikoli. Zdrojové kódy vycházejí jako archivy u jednotlivých vydání, pod licencí GNU LGPL (s dodatečným omezením pro kód rozbalování RAR, části pod licencí BSD). Chybí však veřejné repozitáře s historií změn, revizí kódu a seznamem lidí, kteří opravy schvalují. Repozitáře 7-Zipu na GitHubu jsou kopie od třetích stran.
  • Jádro LZMA je volné dílo. LZMA SDK — knihovna s algoritmy LZMA/LZMA2 a podporou formátu 7z — se dostalo do stovek dalších programů, instalátorů a vestavěných systémů. Chyba v něm se tedy šíří daleko za samotný 7-Zip.
  • Jediný bod důvěry. Bezpečnost milionů instalací závisí na poctivosti, zdraví a situaci jednoho člověka v jediné jurisdikci. Není to výtka vůči autorovi — nikdo neprokázal, že by v 7-Zipu byla záměrně skrytá zadní vrátka — ale je to přesně ten typ rizika, který se posuzuje při hodnocení dodavatelského řetězce.

Jak je 7-Zip postavený

Za prostým okénkem se skrývá poměrně rozsáhlá architektura. Program se skládá z několika souborů, které lze snadno zaměnit:

SouborRole
7zFM.exesprávce souborů — okno, které uživatel vidí
7zG.exeokna průběhu a dialogy volané z místní nabídky
7z.exepříkazová řádka; veškerou práci předává knihovně 7z.dll
7z.dllvlastní jádro: podpora formátů, komprese, šifrování
7-zip.dllrozšíření prostředí Průzkumníka (nabídka „7-Zip“ pod pravým tlačítkem)
7za.exe, 7zr.exesamostatné konzolové verze bez DLL, často vkládané do cizích skriptů a instalátorů

Jádro je napsané v C++ a C a nejzatíženější místa — dekodér LZMA, AES, CRC, SHA — mají navíc verze v assembleru pro x86, x64 a ARM64. Uvnitř běží systém zásuvných modulů ve stylu COM: každý formát archivu implementuje rozhraní pro čtení a zápis (IInArchive, IOutArchive) a každý algoritmus rozhraní kodéru. Díky tomu přidání nového formátu nezasahuje do zbytku programu.

Vlastní formát 7z je kontejner: na začátku krátká hlavička se signaturou, pak zabalené datové proudy a na konci hlavička s popisem souborů (často sama komprimovaná). Soubory lze balit v režimu solid — jako jeden souvislý proud — což dává vynikající kompresní poměr, ale znamená, že jediný poškozený bajt dokáže zničit vše, co leží za ním. K dispozici jsou metody LZMA, LZMA2 (vícevláknová), PPMd, BZip2 a Deflate a filtry připravující strojový kód ke kompresi (BCJ, BCJ2, ARM64).

Nejdůležitější věc z hlediska bezpečnosti: 7-Zip vytváří několik formátů (7z, ZIP, GZIP, BZIP2, XZ, TAR, WIM), ale čte desítky — RAR, CAB, ISO, UDF, VHD/VHDX, obrazy NTFS a FAT, HFS, SquashFS, MSI, CHM, instalátory NSIS a mnoho dalších. Každý z těchto parserů je kód v jazyce bez ochrany paměti, který zpracovává data dodaná cizím člověkem. Právě tam, a ne v samotném LZMA, se našla většina vážných chyb.

Jak 7-Zip šifruje

  • Archivy 7z: AES-256 v režimu CBC. Klíč vzniká z hesla přes 219 (524 288) iterací SHA-256 se solí. To rozumně zpomaluje hádání hesel, ale není to moderní funkce odolná vůči grafickým kartám, jako je Argon2.
  • Žádné ověření šifrového textu. 7z nemá ani MAC, ani režim AEAD. Integritu kontroluje CRC32 rozbalených dat — kontrolní součet, nikoli kryptografický důkaz, že nikdo nic nezměnil.
  • Archivy ZIP: výchozí metodou je staré ZipCrypto, lámané útokem se známým otevřeným textem (nástroje typu bkcrack to zvládnou v řádu minut, je-li znám úryvek byť jediného souboru). AES-256 je třeba zvolit ručně.

Úniky: co prozradí „zašifrovaný“ archiv

Nejčastější únik s účastí 7-Zipu nepotřebuje žádný exploit. Stačí výchozí nastavení:

  1. Názvy souborů zůstávají čitelné. V archivu 7z s heslem je seznam souborů — názvy, velikosti, data změn — viditelný bez hesla, dokud se nezaškrtne „Šifrovat názvy souborů“ (na příkazové řádce: -mhe=on). Soubor Vysledky_kontroly_Novak_rodne_cislo.xlsx mluví sám za sebe, i když je jeho obsah v bezpečí. U ZIP nelze názvy souborů zašifrovat vůbec.
  2. ZIP se ZipCryptem. Uživatel vidí pole „Heslo“ a předpokládá, že data jsou chráněná. U ZipCrypta je taková ochrana iluzorní.
  3. Heslo ve stejném kanálu. Archiv v příloze, heslo v dalším mailu do téže schránky — to je problém postupu, nikoli programu, ale 7-Zip to nijak neztěžuje.
  4. Ztráta značky „z internetu“. Windows označují stažené soubory značkou Mark-of-the-Web, díky níž SmartScreen a Office varují před jejich otevřením. 7-Zip ji léta na rozbalené soubory vůbec nepřenášel; od verze 22.00 to umí, ale je nutné to zapnout v nastavení. Zranitelnost CVE-2025-0411 umožňovala značku ztratit i při zapnuté ochraně — přes archiv vnořený v archivu.

Případ ze života: CVE-2025-0411 nebyla teoretická. Podle analýzy Trend Micro posílaly na podzim 2024 skupiny spojené s Ruskem ukrajinským vládním institucím a firmám dvojitě vnořené archivy s názvy předstírajícími dokumenty (s využitím homoglyfů). Po rozbalení zranitelným 7-Zipem škodlivý soubor ztratil značku MotW a spustil se bez varování, přičemž nainstaloval SmokeLoader. Oprava přišla ve verzi 24.09.

O rok později tentýž ochranný mechanismus selhal znovu, a to důkladněji. CVE-2026-58052 — ohlášené badatelem vystupujícím pod přezdívkou ashdfrkl prostřednictvím VulnCheck a zveřejněné 27. června 2026 — využívá připravený archiv RAR5. 7-Zip blokoval proud dodaný archivem s přesným názvem Zone.Identifier, ale záznam RAR5 pojmenovaný :Zone.Identifier:$DATA tímto sítem propadl a NTFS obě jména převedl na týž proud — čímž právě nastavenou značku internetové zóny přepsal hodnotou ZoneId=0. Druhý záznam, ::$DATA, nahradil vlastní obsah rozbaleného souboru. Výsledek: žádné varování SmartScreenu a soubor, který ukazuje něco jiného, než slibuje jeho název. NVD uvádí jako zranitelné všechny verze až po 26.01 včetně a oprava se objevila teprve ve verzi 26.03 z 3. září 2026. Důkaz konceptu je veřejný.

Nejdůležitější zranitelnosti posledního desetiletí

Následující seznam není úplný, ale ukazuje vzorec: chyby sedí především v parserech méně používaných formátů a důsledkem bývá spuštění kódu už při otevření archivu.

IdentifikátorČeho se týkáOpraveno ve
CVE-2016-2334přetečení haldy u obrazů HFS+ (Cisco Talos)16.00
CVE-2016-2335čtení mimo vyrovnávací paměť u obrazů UDF16.00
CVE-2018-5996poškození paměti při rozbalování RAR/PPMd18.00
CVE-2018-10115chyba u solid archivů RAR, možné spuštění kódu18.05
CVE-2022-29072ohlášené zvýšení oprávnění přes soubor nápovědy; autor rozporuje, že jde o zranitelnost 7-Zipusporné
CVE-2023-31102podtečení celého čísla v Ppmd7 (Zero Day Initiative)23.00
CVE-2023-40481zápis mimo vyrovnávací paměť u obrazů SquashFS23.00
CVE-2024-11477podtečení celého čísla při rozbalování Zstandard, možné spuštění kódu24.07
CVE-2025-0411obejití Mark-of-the-Web, zneužito při útocích24.09
CVE-2025-11001, CVE-2025-11002symbolické odkazy v ZIP umožňující zapsat soubor mimo cílový adresář25.00
CVE-2025-55188zápis libovolného souboru přes symbolické odkazy25.01
CVE-2026-48092 … 48112osm chyb práce s pamětí v obsluze obrazů SquashFS, NTFS, UEFI, UDF a WIM a archivů Ar26.01
CVE-2026-14266přetečení haldy při dekompresi XZ, možné vzdálené spuštění kódu26.02
CVE-2026-58052druhé obejití Mark-of-the-Web, tentokrát přes archiv RAR5; veřejně dostupný důkaz konceptu26.03

Samotné chyby nejsou ničím výjimečným — mají je všechny archivátory. Problém je to, co se děje po vydání opravy:

  • 7-Zip se sám neaktualizuje. Nemá aktualizační službu ani upozornění na novou verzi. V typické organizaci má každý počítač tu verzi, která byla aktuální v den instalace systému — někdy i roky starou.
  • Kopie v cizích programech. 7z.dll a 7za.exe leží v adresářích desítek aplikací a skriptů. Aktualizace „hlavního“ 7-Zipu se jich nedotkne a inventura takových kopií se v praxi nedělá.
  • Chybějící digitální podpis. Instalátory z 7-zip.org nejsou podepsané certifikátem Authenticode. Nelze tedy postavit pravidlo AppLocker/WDAC typu „povol soubory tohoto vydavatele“ a uživatel nepozná originál od padělku podle podpisu.
  • Padělané stránky. Jedinou oficiální adresou je 7-zip.org. Domény k nezaměnění podobné jí opakovaně sloužily k šíření instalátorů s přibaleným škodlivým kódem — a chybějící digitální podpis takové záměny usnadňuje.

PeaZip: jaké jádro má doopravdy

PeaZip bývá označován za „alternativu k 7-Zipu“. Tvoří ho Giorgio Tani z Itálie, od roku 2006, v jazyce Free Pascal s prostředím Lazarus, pod licencí LGPLv3. Běží na Windows, Linuxu i macOS, má modernější rozhraní a vestavěné nástroje na kontrolní součty, bezpečné mazání souborů a porovnávání adresářů.

Klíčová věc, o které málokdo ví: PeaZip je z velké části grafická nadstavba. Sám obsluhuje jen svůj formát PEA a u ostatních formátů volá externí programy, které dodává spolu se sebou v podadresáři res\bin:

  • 7-Zip (7z.exe a 7z.dll; na Linuxu 7-Zip pro Linux nebo p7zip) — obsluhuje 7z, ZIP, TAR, GZ, XZ, ISO, CAB, rozbalování RAR a většinu zbývajících formátů,
  • Brotli a Zstandard — referenční nástroje těchto algoritmů,
  • FreeArc, ZPAQ a rodina PAQ — formáty s velmi vysokou kompresí,
  • UPX — balení spustitelných souborů.

Čili: když v PeaZipu vytváříte nebo otevíráte archiv 7z či ZIP, práci odvádí přesně tentýž kód jako v 7-Zipu. Dědí všechny zranitelnosti 7-Zipu — a opravy dostává teprve tehdy, když autor PeaZipu vydá novou verzi s novější 7z.dll. Co to znamená v praxi, píšeme níže.

V čem se PeaZip reálně liší

7-ZipPeaZip
AutorIgor Pavlov (Rusko)Giorgio Tani (Itálie)
JazykC++, C, assemblerFree Pascal (rozhraní a formát PEA)
Jádro pro 7z/ZIPvlastní7-Zip, přibalený k programu
Vlastní formát7zPEA
ŠifrováníAES-256-CBC bez ověřenív PEA: AES, Twofish nebo Serpent v ověřovaném režimu (EAX), volitelně kaskáda tří šifer a souborový klíč jako druhý faktor; u 7z/ZIP — totéž co 7-Zip
Rozhraníprosté, klasickérozsáhlé, s náhledem a nástroji
SystémyWindows, Linux (7-Zip pro Linux)Windows, Linux, macOS

Formát PEA je kryptograficky lépe promyšlený než 7z — ověřované šifrování odhalí jakoukoli úpravu archivu, nejen náhodné poškození. Jenže archiv PEA otevře prakticky výhradně PeaZip, takže k výměně souborů s kýmkoli zvenčí se stejně vracíme k 7z nebo ZIP — tedy k 7-Zipu pod povrchem.

Proč polské úřady od 7-Zipu odešly

Neexistuje jediný veřejný předpis, který by 7-Zip zakazoval. Rozhodnutí padají ve vnitřních bezpečnostních politikách, požadavcích zadavatelů a seznamech schváleného softwaru — v dokumentech, které se nezveřejňují. Z rozhovorů s klienty z veřejného sektoru však vyplývá, že argumenty se opakují téměř doslova:

  1. Původ dodavatele. Od roku 2022 posuzují instituce software vytvářený v Rusku a Bělorusku mnohem pozorněji a novela polského zákona o národním systému kybernetické bezpečnosti počítá s mechanismem označování dodavatelů s vysokým rizikem. Projekt jediného člověka v Rusku, bez firmy, s níž by šlo uzavřít smlouvu, a bez možnosti auditovat proces vydávání, takovým hodnocením neprojde — bez ohledu na kvalitu samotného kódu.
  2. Skutečné útoky přes archivátory. CVE-2025-0411 byla použita proti státním institucím sousední země. Pro polské služby to není abstrakce, nýbrž popis útoku, který k nim může dorazit zítra.
  3. Žádná kontrola nad verzemi. Program bez mechanismu aktualizací a bez digitálního podpisu se těžko nasazuje centrálně, těžko se hlídají jeho verze a těžko se pravidly AppLocker/WDAC brání padělkům.
  4. Kryptografie nesplňuje požadavky. AES-CBC bez ověření, ve výchozím nastavení čitelné názvy souborů a ZipCrypto u ZIP tvoří sestavu, která neprojde posouzením. Pro utajované informace se archivátor stejně nehodí: jejich ochrana vyžaduje kryptografické prostředky s certifikátem polské ABW nebo SKW.
  5. Dodavatelský řetězec a SBOM. Zadavatelé stále častěji žádají soupis součástí softwaru. 7-Zip vložený do deseti produktů v deseti různých verzích je položka, kterou nikdo nechce vysvětlovat auditorovi.

Náhradou, po které se sáhlo nejčastěji, je PeaZip. Z pohledu takové politiky jde o logickou volbu: autor z Evropské unie, aktivně rozvíjené repozitáře na GitHubu, předvídatelná vydání a vlastní formát s pořádným ověřovaným šifrováním. Instituce dostane dodavatele, kterého lze popsat v dokumentaci.

Vyplatí se ale vědět, co se tím kupuje. U formátů 7z a ZIP práci nadále odvádí jádro 7-Zipu přibalené k PeaZipu, takže zranitelnosti v parserech zůstávají — mění se to, kdo a kdy dodá opravu. U PeaZipu proto stojí za to hlídat dvě věci: aby byl program aktuální (protože spolu s ním se aktualizuje vestavěná 7z.dll) a aby se při inventuře softwaru zapsalo i to, co sedí v jeho podadresáři res\bin. Plnou nezávislost na kódu 7-Zipu dává teprve formát PEA — ten ale u příjemce otevře výhradně PeaZip.

Co dělat v praxi

Pokud 7-Zip musí v organizaci zatím zůstat:

  • stahujte ho výhradně z 7-zip.org a udržujte alespoň verzi 26.03 z 3. září 2026 — ta opravuje poslední obejití Mark-of-the-Web a všechny starší mají známé, veřejně popsané zranitelnosti,
  • nasazujte ho centrálně a hledejte osiřelé kopie 7z.dll, 7za.exe a 7zr.exe v adresářích jiných programů,
  • při šifrování vždy používejte formát 7z se zapnutým šifrováním názvů (-mhe=on); musí-li to být ZIP — pak jen AES-256, nikdy ZipCrypto,
  • v nastavení (Nástroje → Možnosti → 7-Zip) zapněte přenášení zóny Zone.Identifier na rozbalené soubory,
  • heslo předávejte jiným kanálem než samotný archiv — telefonicky nebo esemeskou.

K pouhému rozbalování běžných archivů dnes stačí Windows 11: od aktualizace z podzimu 2023 otevírá Průzkumník 7z, RAR a TAR přes vestavěnou knihovnu libarchive, bez instalace čehokoli.

Poctivě o střetu zájmů: EvidSec vyvíjí vlastní archivátor ElZip, který vznikl právě poté, co naši klienti 7-Zip stáhli. Má vlastní jádro napsané v Rustu s částmi v assembleru, neobsahuje kód 7-Zipu ani LZMA SDK a jeho aktualizace jsou podepsané klíčem Ed25519 a ověřované před instalací. Píšeme to na konci, aby čtenář věděl, odkud pramení náš zájem o téma — výše uvedený rozbor nezávisí na tom, zda si někdo vybere náš program.

Zdroje

← Všechny články SecTech