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:
| Soubor | Role |
|---|---|
7zFM.exe | správce souborů — okno, které uživatel vidí |
7zG.exe | okna průběhu a dialogy volané z místní nabídky |
7z.exe | příkazová řádka; veškerou práci předává knihovně 7z.dll |
7z.dll | vlastní jádro: podpora formátů, komprese, šifrování |
7-zip.dll | rozšíření prostředí Průzkumníka (nabídka „7-Zip“ pod pravým tlačítkem) |
7za.exe, 7zr.exe | samostatné 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
bkcrackto 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í:
- 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). SouborVysledky_kontroly_Novak_rodne_cislo.xlsxmluví sám za sebe, i když je jeho obsah v bezpečí. U ZIP nelze názvy souborů zašifrovat vůbec. - ZIP se ZipCryptem. Uživatel vidí pole „Heslo“ a předpokládá, že data jsou chráněná. U ZipCrypta je taková ochrana iluzorní.
- 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.
- 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-2334 | přetečení haldy u obrazů HFS+ (Cisco Talos) | 16.00 |
| CVE-2016-2335 | čtení mimo vyrovnávací paměť u obrazů UDF | 16.00 |
| CVE-2018-5996 | poškození paměti při rozbalování RAR/PPMd | 18.00 |
| CVE-2018-10115 | chyba u solid archivů RAR, možné spuštění kódu | 18.05 |
| CVE-2022-29072 | ohlášené zvýšení oprávnění přes soubor nápovědy; autor rozporuje, že jde o zranitelnost 7-Zipu | sporné |
| CVE-2023-31102 | podtečení celého čísla v Ppmd7 (Zero Day Initiative) | 23.00 |
| CVE-2023-40481 | zápis mimo vyrovnávací paměť u obrazů SquashFS | 23.00 |
| CVE-2024-11477 | podtečení celého čísla při rozbalování Zstandard, možné spuštění kódu | 24.07 |
| CVE-2025-0411 | obejití Mark-of-the-Web, zneužito při útocích | 24.09 |
| CVE-2025-11001, CVE-2025-11002 | symbolické odkazy v ZIP umožňující zapsat soubor mimo cílový adresář | 25.00 |
| CVE-2025-55188 | zápis libovolného souboru přes symbolické odkazy | 25.01 |
| CVE-2026-48092 … 48112 | osm chyb práce s pamětí v obsluze obrazů SquashFS, NTFS, UEFI, UDF a WIM a archivů Ar | 26.01 |
| CVE-2026-14266 | přetečení haldy při dekompresi XZ, možné vzdálené spuštění kódu | 26.02 |
| CVE-2026-58052 | druhé obejití Mark-of-the-Web, tentokrát přes archiv RAR5; veřejně dostupný důkaz konceptu | 26.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.dlla7za.exeleží 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.orgnejsou 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.exea7z.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-Zip | PeaZip | |
|---|---|---|
| Autor | Igor Pavlov (Rusko) | Giorgio Tani (Itálie) |
| Jazyk | C++, C, assembler | Free Pascal (rozhraní a formát PEA) |
| Jádro pro 7z/ZIP | vlastní | 7-Zip, přibalený k programu |
| Vlastní formát | 7z | PEA |
| Š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émy | Windows, 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:
- 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.
- 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.
- Žá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.
- 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.
- 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.orga 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.exea7zr.exev 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
- Oficiální stránka 7-Zip a historie změn: 7-zip.org, 7-zip.org/history.txt, licence: 7-zip.org/license.txt
- LZMA SDK: 7-zip.org/sdk.html
- PeaZip: peazip.github.io
- Popisy zranitelností v databázi NVD: CVE-2026-58052, CVE-2025-0411, CVE-2025-11001, CVE-2025-55188, CVE-2024-11477, CVE-2018-10115
- Popis zranitelnosti Mark-of-the-Web v RAR5: hlášení VulnCheck