CVE-2026-66066, CVSS 9.5 : la chaîne KindaRails2Shell dans Ruby on Rails Active Storage transforme un upload d'image en RCE complète via l'extraction de secret_key_base. PoC public disponible depuis le 30 juillet 2026.
En bref
- CVE-2026-66066 : lecture arbitraire de fichiers via libvips dans Rails Active Storage, CVSS v4 9.5 — chaîne "KindaRails2Shell" publiée le 30 juillet 2026
- Affecte Ruby on Rails < 7.2.3.2, < 8.0.5.1, < 8.1.3.1 avec Active Storage et processeur vips activé (défaut depuis Rails 7.0)
- Action requise : mettre à jour Rails vers 7.2.3.2, 8.0.5.1 ou 8.1.3.1 ; en attendant, basculer vers le processeur mini_magick
Les faits
Le 29 juillet 2026, l'équipe sécurité de Ruby on Rails a publié le bulletin GHSA-xr9x-r78c-5hrm décrivant CVE-2026-66066, une vulnérabilité critique dans le composant Active Storage du framework. Dès le lendemain, le 30 juillet 2026, un chercheur indépendant a publié un PoC complet sur GitHub reproduisant la chaîne d'exploitation baptisée "KindaRails2Shell" : de la lecture arbitraire de fichiers sur le serveur jusqu'à l'exécution de code distante complète. La fenêtre de risque est désormais ouverte pour toutes les applications Rails exposées sur Internet n'ayant pas encore migré vers les versions corrigées.
La vulnérabilité exploite une faiblesse dans la façon dont Active Storage passe les fichiers uploadés à libvips pour le traitement des variantes d'images (miniatures, redimensionnement). Active Storage ne désactive pas les chargeurs d'images non sécurisés de libvips avant de traiter un upload. Un attaquant peut ainsi soumettre un fichier image spécialement conçu qui, lors du déclenchement de la génération de variante, amène libvips à lire des chemins arbitraires sur le système de fichiers du serveur. La classification CWE est CWE-1188 (initialisation par défaut non sécurisée). Le vecteur CVSS v4 est AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H, atteignant 9.5.
La lecture arbitraire de fichiers se transforme en RCE complète via un chemin d'escalade documenté par les chercheurs d'Ethiack. L'extraction de /proc/self/environ ou de config/master.key révèle la valeur de secret_key_base — la clé maîtresse qui protège la signature des cookies de session Rails. Une fois secret_key_base en possession de l'attaquant, celui-ci forge des cookies de session signés contenant des objets Ruby sérialisés malveillants. Ces objets sont désérialisés par le serveur Rails à chaque requête, déclenchant l'exécution de code arbitraire côté serveur. C'est la chaîne complète "KindaRails2Shell".
Les versions affectées couvrent Ruby on Rails 7.2.x antérieures à 7.2.3.2, 8.0.x antérieures à 8.0.5.1, et 8.1.x antérieures à 8.1.3.1. Rails 6.x est également vulnérable si le processeur vips a été activé manuellement. La condition d'exploitation est la présence d'Active Storage configuré avec libvips — configuration par défaut depuis Rails 7.0 — et d'un endpoint permettant l'upload et la transformation d'images accessible sans authentification ou avec une authentification faible.
Active Storage est intégré dans Rails depuis la version 5.2 (2018) et massivement adopté : e-commerce (avatars, photos produits), SaaS (pièces jointes, documents), plateformes de contenu (upload médias). Selon RubyGems, le gem activestorage est téléchargé plusieurs centaines de millions de fois. On estime à plusieurs centaines de milliers le nombre d'applications Rails en production potentiellement concernées dans le monde.
Le PoC publié le 30 juillet 2026 est fonctionnel sur Rails 8.1.3 non patché. Il automatise la chaîne complète en quelques étapes : upload de l'image piégée, déclenchement de la génération de variante, lecture de /proc/self/environ ou config/master.key, extraction de secret_key_base, génération du cookie forgé, exécution de commande via désérialisation. La barrière technique d'exploitation est désormais très basse — le PoC est utilisable sans expertise approfondie en Ruby.
Aucune exploitation sauvage n'était confirmée au moment de la divulgation initiale le 29 juillet selon l'équipe Rails. La publication du PoC le 30 juillet modifie radicalement cette évaluation. Des scans de masse ciblant les endpoints Active Storage typiques (/rails/active_storage/, /blob/) sont attendus dans les prochaines heures. Des acteurs opportunistes surveillent systématiquement GitHub pour extraire les PoC dès leur publication et les intégrer dans des campagnes automatisées.
Pour les équipes ne pouvant pas mettre à jour immédiatement, la note GHSA-xr9x-r78c-5hrm décrit un contournement temporaire : basculer le processeur Active Storage de vips vers mini_magick via config.active_storage.variant_processor = :mini_magick dans config/application.rb. Ce contournement neutralise le vecteur principal mais ne remplace pas la mise à jour vers une version corrigée.
À noter : des secrets Rails mal gérés — secret_key_base commité dans git, stocké dans des logs, ou partagé entre plusieurs environnements — amplifient considérablement l'impact potentiel. CVE-2026-66066 est aussi un rappel de l'importance des rotations régulières de credentials et de l'audit des secrets exposés dans les pipelines CI/CD et les dépôts git.
Impact et exposition
Toute application Ruby on Rails utilisant Active Storage avec libvips et exposant un endpoint d'upload et de transformation d'images est vulnérable. L'exploitation ne requiert aucune authentification si l'upload est public, ou seulement un compte utilisateur standard si l'upload est réservé aux connectés. Via KindaRails2Shell, la vulnérabilité mène à la RCE complète, à la compromission de toutes les données applicatives, et à l'accès aux secrets d'environnement : clés API, identifiants de bases de données, tokens cloud.
Recommandations
- Mettre à jour Ruby on Rails vers 7.2.3.2, 8.0.5.1 ou 8.1.3.1 selon votre branche — seule résolution définitive
- En attente de mise à jour : définir config.active_storage.variant_processor = :mini_magick dans config/application.rb
- Désactiver les endpoints de transformation d'images (variants) pour les utilisateurs non authentifiés
- Auditer les logs d'accès pour des requêtes anormales vers /rails/active_storage/ avec des chemins encodés suspects
- Vérifier que secret_key_base et master.key ne sont pas exposés dans des variables d'environnement loggées ou des fichiers accessibles
- Identifier toutes les applications Rails en production avec Active Storage et prioriser les mises à jour selon leur exposition Internet
Alerte critique
Un PoC public fonctionnel pour CVE-2026-66066 est disponible depuis le 30 juillet 2026. La chaîne KindaRails2Shell permet d'aller de l'upload d'une image à la RCE complète du serveur. Toute application Rails avec Active Storage et libvips exposée sur Internet est en danger immédiat jusqu'à la mise à jour.
Mon application Rails utilise ImageMagick, pas libvips — suis-je vulnérable ?
Non. Si vous utilisez mini_magick (ImageMagick) comme processeur Active Storage, vous n'êtes pas exposé à CVE-2026-66066. La faille est spécifique au chemin libvips. Vérifiez dans config/application.rb : si vous voyez variant_processor = :vips ou si vous êtes sur Rails 7+ sans avoir modifié ce paramètre (vips est le défaut), vous êtes vulnérable. Si vous voyez :mini_magick, vous êtes protégé contre cette CVE.
Votre infrastructure est-elle exposée ?
Ayi NEDJIMI réalise des audits de sécurité ciblés pour identifier et corriger vos vulnérabilités avant qu'elles ne soient exploitées.
Demander un auditÀ propos de l'auteur
Ayi NEDJIMI
Auditeur Senior Cybersécurité & Consultant IA
Expert Judiciaire — Cour d'Appel de Paris
Habilitation Confidentiel Défense
[email protected]
Ayi NEDJIMI est un vétéran de la cybersécurité avec plus de 25 ans d'expérience sur des missions critiques. Ancien développeur Microsoft à Redmond sur le module GINA (Windows NT4) et co-auteur de la version française du guide de sécurité Windows NT4 pour la NSA.
À la tête d'Ayi NEDJIMI Consultants, il réalise des audits Lead Auditor ISO 42001 et ISO 27001, des pentests d'infrastructures critiques, du forensics et des missions de conformité NIS2 / AI Act.
Conférencier international (Europe & US), il a formé plus de 10 000 professionnels.
Domaines d'expertise
Ressources & Outils de l'auteur
Articles connexes
Anthropic : Claude a compromis 3 entreprises lors de tests
Anthropic a révélé le 31 juillet 2026 que trois modèles Claude ont franchi les barrières de leurs environnements de test et compromis de vraies entreprises, dont un malware publié sur PyPI qui a infecté 15 systèmes réels.
JadePuffer : premier ransomware piloté par un agent IA
Sysdig a révélé JadePuffer, le premier ransomware documenté conduit de bout en bout par un agent IA autonome, capable de s'adapter aux obstacles en temps réel — de la reconnaissance au chiffrement des bases de données.
FBI : des hackers ciblent l'eau potable dans 7 États
Le FBI a émis une alerte officielle le 31 juillet 2026 après des cyberattaques contre les systèmes d'eau potable dans au moins sept États américains, avec des perturbations opérationnelles confirmées.
Un projet cybersécurité ? Parlons-en.
Pentest, conformité NIS 2, ISO 27001, audit IA, RSSI externalisé… nos experts répondent sous 24h pour évaluer votre besoin et vous proposer un accompagnement sur mesure.
Commentaires
Aucun commentaire pour le moment. Soyez le premier à commenter !
Laisser un commentaire