SecTech ›
7-Zip et PeaZip à la loupe : qui les développe, comment ils fonctionnent et ce qu’ils contiennent
L’archiveur gratuit le plus répandu a un seul auteur, des dizaines d’analyseurs écrits en C++ et aucune mise à jour automatique. Nous démontons 7-Zip et regardons ce qui se cache réellement dans PeaZip, l’outil vers lequel se tournent les institutions en quête de remplacement.
Auteur : CybF1sh 14 min de lecture
7-Zip se trouve sur presque tous les postes Windows professionnels. L’informaticien l’installe « au cas où », la moitié des programmes qui doivent décompresser un paquet de mise à jour en embarquent une copie, et les utilisateurs s’en servent pour « chiffrer » des fichiers avant de les envoyer par courriel. C’est précisément pour cela qu’il vaut la peine de savoir d’où il vient, comment il est construit et où sont ses points faibles — et ce que l’on obtient réellement en passant à PeaZip.
Qui est derrière 7-Zip
7-Zip a été écrit, et est développé depuis le premier jour, par Igor Pavlov — un programmeur russe. La première version est parue en 1999 et, plus d’un quart de siècle plus tard, le programme est resté en pratique le projet d’une seule personne. Aucune société derrière lui, aucune fondation, aucune équipe aux rôles répartis : la même personne écrit le code, reçoit les rapports de bogues, publie les versions et les met en ligne sur 7-zip.org.
Plusieurs traits de ce modèle comptent pour la sécurité :
- Le code est ouvert, le processus ne l’est pas. Les sources sont publiées sous forme d’archives à chaque version, sous licence GNU LGPL (avec une restriction supplémentaire pour le code de décompression RAR, certaines parties sous licence BSD). Il manque en revanche un dépôt public avec l’historique des modifications, la revue de code et la liste des personnes qui valident les correctifs. Les dépôts 7-Zip sur GitHub sont des copies tenues par des tiers.
- Le moteur LZMA est dans le domaine public. Le LZMA SDK — la bibliothèque contenant les algorithmes LZMA/LZMA2 et la prise en charge du format 7z — s’est retrouvé dans des centaines d’autres programmes, installateurs et systèmes embarqués. Une faille qui s’y trouve se propage donc bien au-delà de 7-Zip lui-même.
- Un point de confiance unique. La sécurité de millions d’installations dépend de l’honnêteté, de la santé et de la situation d’une seule personne, dans une seule juridiction. Ce n’est pas un reproche adressé à l’auteur — personne n’a démontré l’existence d’une porte dérobée volontaire dans 7-Zip — mais c’est exactement le type de risque que l’analyse de la chaîne d’approvisionnement doit détecter.
Comment 7-Zip est construit
Derrière une fenêtre toute simple se cache une architecture assez étendue. Le programme se compose de plusieurs fichiers faciles à confondre :
| Fichier | Rôle |
|---|---|
7zFM.exe | gestionnaire de fichiers — la fenêtre que voit l’utilisateur |
7zG.exe | fenêtres de progression et boîtes de dialogue lancées depuis le menu contextuel |
7z.exe | ligne de commande ; elle confie tout le travail à 7z.dll |
7z.dll | le moteur proprement dit : prise en charge des formats, compression, chiffrement |
7-zip.dll | extension de l’explorateur (le menu « 7-Zip » du clic droit) |
7za.exe, 7zr.exe | versions console autonomes sans DLL, souvent recopiées dans des scripts et installateurs tiers |
Le moteur est écrit en C++ et en C, et les endroits les plus sollicités — le décodeur LZMA, AES, CRC, SHA — disposent en plus de versions en assembleur pour x86, x64 et ARM64. À l’intérieur fonctionne un système de greffons de style COM : chaque format d’archive implémente des interfaces de lecture et d’écriture (IInArchive, IOutArchive) et chaque algorithme une interface de codeur. Ajouter un format ne touche donc pas au reste du programme.
Le format natif 7z est un conteneur : un court en-tête de signature au début, puis les flux de données compressés, et à la fin un en-tête décrivant les fichiers (souvent compressé lui aussi). Les fichiers peuvent être compressés en mode solide — comme un flux continu — ce qui donne un excellent taux de compression, mais signifie qu’un seul octet endommagé peut détruire tout ce qui le suit. Les méthodes disponibles sont LZMA, LZMA2 (multifil), PPMd, BZip2 et Deflate, ainsi que des filtres préparant le code machine à la compression (BCJ, BCJ2, ARM64).
Le point le plus important du point de vue de la sécurité : 7-Zip crée quelques formats (7z, ZIP, GZIP, BZIP2, XZ, TAR, WIM) mais en lit des dizaines — RAR, CAB, ISO, UDF, VHD/VHDX, images NTFS et FAT, HFS, SquashFS, MSI, CHM, installateurs NSIS et bien d’autres. Chacun de ces analyseurs est du code écrit dans un langage sans protection mémoire, qui traite des données fournies par un inconnu. C’est là, et non dans LZMA lui-même, qu’ont été trouvées la plupart des failles graves.
Comment 7-Zip chiffre
- Archives 7z : AES-256 en mode CBC. La clé est dérivée du mot de passe par 219 (524 288) itérations de SHA-256 avec un sel. Cela ralentit raisonnablement les tentatives de devinette, mais ce n’est pas une fonction moderne résistante aux cartes graphiques comme Argon2.
- Aucune authentification du chiffré. 7z n’a ni MAC ni mode AEAD. L’intégrité est vérifiée par un CRC32 des données décompressées — une somme de contrôle, et non une preuve cryptographique que rien n’a été modifié.
- Archives ZIP : la méthode par défaut est le vieux ZipCrypto, cassé par une attaque à texte clair connu (des outils comme
bkcracky parviennent en quelques minutes si l’on connaît un fragment ne serait-ce que d’un fichier). AES-256 doit être choisi à la main.
Fuites : ce que révèle une archive « chiffrée »
La fuite la plus fréquente impliquant 7-Zip ne demande aucun exploit. Les réglages par défaut suffisent :
- Les noms de fichiers restent en clair. Dans une archive 7z protégée par mot de passe, la liste des fichiers — noms, tailles, dates de modification — est visible sans mot de passe tant que l’on ne coche pas « Chiffrer les noms de fichiers » (en ligne de commande :
-mhe=on). Un fichier nomméResultats_controle_Dupont_num_securite.xlsxparle de lui-même, même si son contenu est protégé. En ZIP, les noms de fichiers ne peuvent pas être chiffrés du tout. - ZIP avec ZipCrypto. L’utilisateur voit un champ « Mot de passe » et suppose que les données sont protégées. Avec ZipCrypto, cette protection est illusoire.
- Le mot de passe dans le même canal. L’archive en pièce jointe, le mot de passe dans le courriel suivant vers la même boîte — c’est un problème de procédure, pas de programme, mais 7-Zip ne le complique en rien.
- La perte de la marque « venu d’Internet ». Windows marque les fichiers téléchargés avec le Mark-of-the-Web, grâce auquel SmartScreen et Office avertissent avant leur ouverture. Pendant des années, 7-Zip ne transmettait pas du tout cette marque aux fichiers extraits ; depuis la version 22.00 il en est capable, mais l’option doit être activée. La vulnérabilité CVE-2025-0411 permettait de perdre la marque même avec la protection activée — via une archive imbriquée dans une archive.
Un cas réel : CVE-2025-0411 n’était pas théorique. Selon une analyse de Trend Micro, à l’automne 2024 des groupes liés à la Russie ont envoyé à des institutions gouvernementales et à des entreprises ukrainiennes des archives doublement imbriquées portant des noms imitant des documents (à l’aide d’homoglyphes). Une fois extrait par un 7-Zip vulnérable, le fichier malveillant perdait sa marque MotW et s’exécutait sans avertissement, installant SmokeLoader. Le correctif est arrivé avec la version 24.09.
Un an plus tard, le même mécanisme de protection a de nouveau échoué, et plus efficacement encore. CVE-2026-58052 — signalée par un chercheur utilisant le pseudonyme ashdfrkl via VulnCheck et publiée le 27 juin 2026 — repose sur une archive RAR5 spécialement conçue. 7-Zip bloquait un flux fourni par l’archive portant exactement le nom Zone.Identifier, mais un enregistrement RAR5 nommé :Zone.Identifier:$DATA passait au travers de ce filtre, et NTFS ramenait les deux noms au même flux — écrasant le marqueur de zone Internet fraîchement apposé par ZoneId=0. Un second enregistrement, ::$DATA, remplaçait le contenu réel du fichier extrait. Résultat : aucun avertissement SmartScreen et un fichier qui montre autre chose que ce que son nom annonce. Le NVD indique comme vulnérables toutes les versions jusqu’à la 26.01 incluse, et le correctif n’est arrivé que dans la 26.03, publiée le 3 septembre 2026. Un démonstrateur est public.
Les vulnérabilités les plus marquantes de la dernière décennie
La liste ci-dessous n’est pas exhaustive, mais elle montre le schéma : les failles se logent surtout dans les analyseurs de formats peu utilisés, et le résultat est souvent l’exécution de code à la simple ouverture d’une archive.
| Identifiant | Ce qui est touché | Corrigé dans |
|---|---|---|
| CVE-2016-2334 | dépassement de tas sur les images HFS+ (Cisco Talos) | 16.00 |
| CVE-2016-2335 | lecture hors limites sur les images UDF | 16.00 |
| CVE-2018-5996 | corruption mémoire dans la décompression RAR/PPMd | 18.00 |
| CVE-2018-10115 | faille sur les archives RAR solides, exécution de code possible | 18.05 |
| CVE-2022-29072 | élévation de privilèges signalée via le fichier d’aide ; l’auteur conteste qu’il s’agisse d’une vulnérabilité de 7-Zip | contesté |
| CVE-2023-31102 | dépassement d’entier par le bas dans Ppmd7 (Zero Day Initiative) | 23.00 |
| CVE-2023-40481 | écriture hors limites sur les images SquashFS | 23.00 |
| CVE-2024-11477 | dépassement d’entier par le bas dans la décompression Zstandard, exécution de code possible | 24.07 |
| CVE-2025-0411 | contournement du Mark-of-the-Web, exploité dans des attaques | 24.09 |
| CVE-2025-11001, CVE-2025-11002 | liens symboliques dans ZIP permettant d’écrire un fichier hors du dossier de destination | 25.00 |
| CVE-2025-55188 | écriture de fichier arbitraire via des liens symboliques | 25.01 |
| CVE-2026-48092 … 48112 | huit failles mémoire dans les gestionnaires d’images SquashFS, NTFS, UEFI, UDF et WIM et dans les archives Ar | 26.01 |
| CVE-2026-14266 | dépassement de tas dans la décompression XZ, exécution de code à distance possible | 26.02 |
| CVE-2026-58052 | un second contournement du Mark-of-the-Web, cette fois par une archive RAR5 ; démonstrateur public | 26.03 |
Les failles en elles-mêmes n’ont rien d’exceptionnel — tous les archiveurs en ont. Le problème est ce qui se passe après la publication d’un correctif :
- 7-Zip ne se met pas à jour tout seul. Il n’a ni service de mise à jour ni même de notification d’une nouvelle version. Dans une organisation type, chaque poste porte la version qui était à jour le jour de l’installation du système — parfois vieille de plusieurs années.
- Des copies dans d’autres programmes.
7z.dllet7za.exetraînent dans les dossiers de dizaines d’applications et de scripts. Mettre à jour le 7-Zip « principal » n’y touche pas, et en pratique personne n’inventorie ces copies. - Absence de signature numérique. Les installateurs de
7-zip.orgne sont pas signés avec un certificat Authenticode. Impossible donc de construire une règle AppLocker/WDAC du type « autoriser les fichiers de cet éditeur », et l’utilisateur ne distingue pas l’original de la contrefaçon par la signature. - Des sites contrefaits. La seule adresse officielle est
7-zip.org. Des domaines trompeusement semblables ont servi à plusieurs reprises à diffuser des installateurs accompagnés de logiciels malveillants — et l’absence de signature numérique facilite ces substitutions.
PeaZip : quel moteur il utilise vraiment
PeaZip est souvent cité comme « l’alternative à 7-Zip ». Il est développé par Giorgio Tani, en Italie, depuis 2006, en Free Pascal avec l’environnement Lazarus, sous licence LGPLv3. Il fonctionne sous Windows, Linux et macOS, propose une interface plus moderne et des outils intégrés de sommes de contrôle, d’effacement sécurisé et de comparaison de dossiers.
Voici le point clé que peu de gens connaissent : PeaZip est en grande partie une interface graphique. Il ne traite lui-même que son format PEA ; pour tous les autres formats, il appelle des programmes externes qu’il livre avec lui dans son sous-dossier res\bin :
- 7-Zip (
7z.exeet7z.dll; sous Linux, 7-Zip pour Linux ou p7zip) — il prend en charge 7z, ZIP, TAR, GZ, XZ, ISO, CAB, l’extraction RAR et la plupart des autres formats, - Brotli et Zstandard — les outils de référence de ces algorithmes,
- FreeArc, ZPAQ et la famille PAQ — des formats à très forte compression,
- UPX — la compression d’exécutables.
Autrement dit : lorsque vous créez ou ouvrez une archive 7z ou ZIP dans PeaZip, le travail est fait exactement par le même code que dans 7-Zip. Il hérite de toutes les vulnérabilités de 7-Zip — et reçoit les correctifs seulement lorsque l’auteur de PeaZip publie une nouvelle version avec une 7z.dll plus récente. Ce que cela implique en pratique est expliqué plus bas.
Ce qui distingue réellement PeaZip
| 7-Zip | PeaZip | |
|---|---|---|
| Auteur | Igor Pavlov (Russie) | Giorgio Tani (Italie) |
| Langage | C++, C, assembleur | Free Pascal (interface et format PEA) |
| Moteur 7z/ZIP | le sien | 7-Zip, livré avec le programme |
| Format natif | 7z | PEA |
| Chiffrement | AES-256-CBC sans authentification | dans PEA : AES, Twofish ou Serpent en mode authentifié (EAX), éventuellement une cascade de trois chiffrements et un fichier-clé comme second facteur ; en 7z/ZIP — la même chose que 7-Zip |
| Interface | simple, classique | étendue, avec aperçu et outils |
| Systèmes | Windows, Linux (7-Zip pour Linux) | Windows, Linux, macOS |
Le format PEA est mieux pensé sur le plan cryptographique que 7z — le chiffrement authentifié détecte toute modification de l’archive, et pas seulement une altération accidentelle. Seulement voilà : une archive PEA ne s’ouvre en pratique qu’avec PeaZip, si bien que tout échange de fichiers avec l’extérieur ramène au 7z ou au ZIP — donc à 7-Zip en dessous.
Pourquoi les administrations polonaises ont abandonné 7-Zip
Il n’existe aucun texte public unique interdisant 7-Zip. Les décisions sont prises dans les politiques de sécurité internes, les exigences des acheteurs publics et les listes de logiciels autorisés — des documents qui ne sont pas publiés. Les échanges avec des clients du secteur public montrent cependant que les arguments reviennent presque mot pour mot :
- L’origine du fournisseur. Depuis 2022, les institutions examinent bien plus attentivement les logiciels créés en Russie et en Biélorussie, et la révision de la loi polonaise sur le système national de cybersécurité prévoit un mécanisme permettant de désigner des fournisseurs à haut risque. Un projet mené par une seule personne en Russie, sans société avec laquelle signer un contrat et sans possibilité d’auditer le processus de publication, ne passe pas une telle évaluation — quelle que soit la qualité du code.
- Des attaques réelles par les archiveurs. CVE-2025-0411 a été utilisée contre les institutions publiques d’un pays voisin. Pour les services polonais, ce n’est pas une abstraction mais la description d’une attaque qui peut les viser demain.
- Aucune maîtrise des versions. Un programme sans mécanisme de mise à jour et sans signature numérique est difficile à déployer de façon centralisée, difficile à suivre en versions et difficile à protéger des contrefaçons par des règles AppLocker/WDAC.
- La cryptographie ne répond pas aux exigences. AES-CBC sans authentification, des noms de fichiers en clair par défaut et ZipCrypto en ZIP forment un ensemble qui ne passera pas la revue. Pour les informations classifiées, un archiveur ne convient de toute façon pas : leur protection exige des moyens cryptographiques certifiés par l’ABW ou le SKW polonais.
- Chaîne d’approvisionnement et SBOM. Les acheteurs publics réclament de plus en plus une nomenclature des composants logiciels. Un 7-Zip recopié dans dix produits en dix versions différentes est une ligne que personne n’a envie d’expliquer à un auditeur.
Le remplaçant le plus souvent retenu est PeaZip. Du point de vue d’une telle politique, c’est un choix logique : un auteur au sein de l’Union européenne, un dépôt activement maintenu sur GitHub, des publications prévisibles et un format natif doté d’un chiffrement authentifié sérieux. L’institution obtient un fournisseur qu’elle peut décrire dans sa documentation.
Il faut toutefois savoir ce que l’on achète avec. Pour les formats 7z et ZIP, le travail reste assuré par le moteur 7-Zip livré avec PeaZip : les vulnérabilités des analyseurs demeurent, ce qui change, c’est qui fournit le correctif et quand. Avec PeaZip, deux points méritent donc de l’attention : garder le programme à jour (car la 7z.dll intégrée se met à jour avec lui) et inscrire aussi, lors de l’inventaire logiciel, ce qui se trouve dans son sous-dossier res\bin. Une indépendance complète vis-à-vis du code de 7-Zip ne vient qu’avec le format PEA — que, chez le destinataire, seul PeaZip ouvrira.
Que faire en pratique
Si 7-Zip doit rester pour l’instant dans l’organisation :
- téléchargez-le uniquement depuis
7-zip.orget maintenez au minimum la version 26.03 du 3 septembre 2026 — elle corrige le dernier contournement du Mark-of-the-Web, et toutes les plus anciennes présentent des vulnérabilités connues et publiquement décrites, - déployez-le de façon centralisée et traquez les copies orphelines de
7z.dll,7za.exeet7zr.exedans les dossiers d’autres programmes, - pour chiffrer, utilisez toujours le format 7z avec le chiffrement des noms activé (
-mhe=on) ; s’il faut du ZIP — uniquement AES-256, jamais ZipCrypto, - dans les réglages (Outils → Options → 7-Zip), activez la propagation du flux Zone.Identifier aux fichiers extraits,
- transmettez le mot de passe par un canal différent de l’archive elle-même — par téléphone ou par SMS.
Pour simplement décompresser des archives courantes, Windows 11 suffit aujourd’hui : depuis la mise à jour de l’automne 2023, l’Explorateur ouvre les 7z, RAR et TAR grâce à la bibliothèque intégrée libarchive, sans rien installer.
En toute transparence sur le conflit d’intérêts : EvidSec développe son propre archiveur, ElZip, né précisément après le retrait de 7-Zip par nos clients. Il possède son propre moteur écrit en Rust avec des parties en assembleur, ne contient aucun code de 7-Zip ni du LZMA SDK, et ses mises à jour sont signées avec une clé Ed25519 et vérifiées avant installation. Nous le précisons à la fin pour que le lecteur sache d’où vient notre intérêt pour le sujet — l’analyse ci-dessus ne dépend pas du choix que fera qui que ce soit.
Sources
- Site officiel de 7-Zip et historique des modifications : 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
- Fiches de vulnérabilités dans le NVD : CVE-2026-58052, CVE-2025-0411, CVE-2025-11001, CVE-2025-55188, CVE-2024-11477, CVE-2018-10115
- Description de la faille Mark-of-the-Web dans RAR5 : avis de VulnCheck