L’association entre « HTML2Shell » et CVE-2026-42069 est erronée : ce numéro concerne un défaut d’autorisation dans Kirby CMS. La faille du décodeur Brotli permettant une corruption mémoire, avec un risque d’exécution de code, porte un autre numéro : CVE-2026-111497. Pour savoir quoi mettre à jour, il faut distinguer ces deux problèmes et vérifier les composants réellement déployés.
En bref#
- CVE-2026-42069 concerne Kirby CMS et l’accès à certaines informations par des utilisateurs déjà connectés au Panel.
- CVE-2026-111497 concerne le décodeur Brotli, notamment embarqué dans Node.js. L’application doit lui transmettre des données malveillantes à décompresser.
- Le fait de servir des pages HTML ne suffit pas à établir une exposition à l’une ou l’autre de ces vulnérabilités.
Ce que recouvre la page « HTML2Shell »#
La page de Penligent consacrée à HTML2Shell, consultée le 25 octobre 2026, est un fact-check. Elle conteste précisément l’association entre ce nom, CVE-2026-42069 et une prétendue exécution de code universelle via HTML. Elle ne présente pas de démonstration d’un tel exploit.
Le registre CVE identifie Kirby et un défaut de contrôle des autorisations. L’avis des mainteneurs a été publié le 23 avril 2026 ; l’enregistrement CVE date du 9 mai. Ce n’est donc pas une nouvelle vulnérabilité HTML publiée en octobre.
Le nom prête à confusion, mais la vérification est assez simple : le produit, les prérequis et les correctifs doivent correspondre au même avis. Un suffixe « 2Shell » n’est pas une description technique.
Kirby : des lectures sans les permissions attendues#
Dans les versions concernées, un utilisateur authentifié au Panel peut accéder au modèle du site ainsi qu’à des informations sur les utilisateurs et les rôles, sans les restrictions attendues. Selon l’avis officiel de Kirby, les opérations d’écriture disposaient déjà de contrôles et ne sont pas affectées par cette CVE.
L’impact dépend de la séparation voulue entre les comptes. Si tous les utilisateurs sont autorisés à consulter ces informations, les mainteneurs indiquent que le site n’est pas affecté par ce problème de confidentialité. Avec des contributeurs aux droits limités, cette séparation compte. La sévérité annoncée est élevée, avec un score CVSS v4.0 de 7,1.
| Versions Kirby affectées | Première version corrigée |
|---|---|
| 4.8.0 et antérieures | 4.9.0 |
| 5.0.0 à 5.3.3 | 5.4.0 |
Les notes de Kirby 5.4.0 détaillent l’ajout des permissions site.access, user.access, users.access, user.list et users.list, ainsi que leur application dans le Panel et l’API. Kirby 4.9.0 rétroporte les correctifs de sécurité.
Pour un site géré avec Composer, placez-vous à la racine de la version déployée, avec un compte autorisé à lire ses fichiers, puis lancez cette commande de consultation :
composer --no-plugins --no-scripts show getkirby/cmsLa ligne versions donne la version installée. Un paquet introuvable ne permet pas de conclure pour une installation de Kirby par archive. La documentation de Composer distingue aussi les paquets installés de ceux enregistrés dans composer.lock : un fichier de verrouillage corrigé ne garantit pas que le déploiement a suivi.
Déployez une version corrigée, puis vérifiez avec un compte contributeur que les informations réservées à l’administration sont bien inaccessibles.
Brotli : une corruption mémoire bien réelle#
L’autre dossier est CVE-2026-111497. Il concerne le décodeur de la bibliothèque de compression Brotli. Un flux malformé déclenche une écriture hors limites, avec des conséquences possibles allant du plantage à la divulgation de mémoire ou à l’exécution de code.
Le bulletin Node.js du 21 octobre décrit une transition de bloc invalide traitée comme un besoin de données supplémentaires. Le décodeur continue alors à accumuler des octets au-delà d’un tampon interne de huit octets. Le correctif amont renvoie une erreur de format et la propage à l’appelant pour interrompre ce traitement.
L’exposition vient de la décompression de données non fiables. Un service peut recevoir un corps de requête compressé, mais aussi télécharger une réponse Brotli depuis un serveur malveillant. Un frontal qui filtre les requêtes entrantes ne couvre donc pas à lui seul ce second chemin. Servir des fichiers compressés ne démontre pas que l’application décode elle-même des flux contrôlés par un attaquant.
Le nom Node2Shell vient de l’analyse publiée par Imperva le 22 octobre. Son équipe rapporte une exécution de code avec l’image officielle Node.js 24.22.0 sous Linux arm64, via des réponses HTTP et des corps de requêtes décompressés par les configurations testées. Les mêmes entrées sont rejetées par 24.22.1. Cette démonstration ne documente pas, à elle seule, une exploitation observée sur des services en production.
Mettre à jour le bon composant#
Voici les versions affectées et les premiers correctifs annoncés par les projets, à distinguer des révisions fournies par une distribution :
| Composant | Versions affectées dans la branche | Première version corrigée |
|---|---|---|
| Node.js 22.x | Avant 22.23.4 | 22.23.4 |
| Node.js 24.x | Avant 24.22.1 | 24.22.1 |
| Node.js 26.x | Avant 26.12.1 | 26.12.1 |
| Bibliothèque Brotli 1.0.x | 1.0.3 à 1.0.9 | 1.0.10 |
| Bibliothèque Brotli 1.1.x | 1.1.0 | 1.1.1 |
| Bibliothèque Brotli 1.2.x | 1.2.0 | 1.2.1 |
Les versions Node.js figurent dans le bulletin du projet. Pour une branche en fin de vie, migrez vers une branche maintenue. Le registre CVE précise les plages Brotli affectées ; les correctifs sont publiés dans les versions 1.0.10, 1.1.1 et 1.2.1.
Pour Node.js, cette commande affiche la version du binaire disponible dans le shell, sans modifier l’installation :
node --versionExécutez-la dans l’environnement de l’application, y compris dans son conteneur. Si le service utilise un chemin de binaire explicite, interrogez ce même binaire. Le Node.js de l’hôte peut être différent. Après remplacement du runtime, relancez le service pour qu’il utilise le nouveau binaire ; cette opération peut interrompre les requêtes en cours.
Avec des paquets de distribution, comparez la révision complète à l’avis de sécurité du fournisseur. Les rétroportages expliqués par Debian peuvent intégrer un correctif sans adopter le dernier numéro amont. Mettre à jour une bibliothèque système ne corrige pas automatiquement une copie embarquée dans une application.
Si le déploiement doit attendre, empêchez temporairement les données Brotli non fiables d’atteindre le décodeur vulnérable, sur les chemins entrants comme sortants. Cela peut casser les échanges qui utilisent cette compression. Imperva recommande de cartographier ces chemins et rappelle que la correction complète passe par la mise à jour du runtime.
Pour l’investigation, des arrêts inattendus pendant une décompression peuvent orienter les recherches, sans constituer une signature fiable d’exploitation. Leur absence n’établit pas l’absence de compromission. De même, une version vulnérable confirme un correctif manquant, pas une attaque réussie.
Le tri utile reste concret : Kirby si vous utilisez ce CMS, le runtime ou la bibliothèque concernés si votre application décompresse du Brotli. Une alerte « HTML2Shell » sans ce contexte ne suffit pas à choisir un correctif.
Sources#
- Penligent - fact-check HTML2Shell, consulté le 25 octobre 2026
- CVE-2026-42069 - enregistrement officiel, également consulté via l’API du registre CVE
- Kirby - avis GHSA-2h7v-4372-f6x2 et versions 4.9.0 et 5.4.0
- Composer - commande show et options globales
- CVE-2026-111497 - enregistrement officiel, également consulté via l’API du registre CVE
- Node.js - bulletin de sécurité du 21 octobre 2026 et option –version
- Brotli - correctif du décodeur et versions 1.0.10, 1.1.1 et 1.2.1
- Imperva - démonstration Node2Shell et conditions testées, 22 octobre 2026
- Debian - FAQ sur les correctifs rétroportés
Visuel : capture de l’avis officiel de Kirby sur GitHub, réalisée le 25 octobre 2026.




