Vue de dessus d'un composant serveur sombre à côté d'une gemme rouge facettée, sur un fond rouge dramatique.

Faille Rails : écriture et lecture de fichiers via ImageMagick

Un attaquant sans authentification peut forcer une application Ruby on Rails à écrire des fichiers arbitraires sur le serveur, et si les pièces jointes sont stockées sur le disque, lire n’importe quel fichier accessible au processus applicatif. Cette faille, suivie sous la référence GHSA-f3w6-w445-fwh9, touche le mécanisme de traitement d’images d’Active Storage lorsqu’il utilise ImageMagick. Selon les analyses de Rails, cette vulnérabilité permet de compromettre des secrets comme la clé secrète de l’application ou les identifiants des systèmes externes, ouvrant la voie à une exécution de code à distance.

Le problème réside dans la façon dont ImageMagick sélectionne un « coder » en fonction du contenu du fichier fourni. Active Storage ne restreignait pas ces coders, laissant uniquement la politique de sécurité interne à ImageMagick comme barrière. Le risque se matérialise dès l’attachement du fichier, sans qu’une opération de variante ou d’analyse ne soit nécessaire. Un exemple rapporté par l’équipe Rails impliquait le coder MSL, un interpréteur capable de lire et d’écrire des fichiers basés sur son script.

Ce qui est touché et la gravité réelle

Pour qu’une application soit exposée, trois conditions doivent être réunies : elle doit utiliser ImageMagick via config.active_storage.variant_processor = :mini_magick, accepter des téléversements de fichiers provenant d’utilisateurs non fiables, et sa politique de sécurité ImageMagick ne doit pas bloquer les coders concernés. Les politiques standards fournies par Debian ou Ubuntu ne suffisent pas à contrer cette attaque.

L’impact est sévère. Rails attribue à cette faille une note de 9,8 sur l’échelle CVSS. Si les pièces jointes sont stockées sur le disque serveur, l’attaquant peut non seulement écrire des fichiers, mais aussi lire des informations sensibles comme secret_key_base ou les fichiers de configuration contenant les identifiants.

Les correctifs sont intégrés dans les versions activestorage 8.0.5.2 et 8.1.4.1. L’équipe Rails a déployé une politique de sécurité spécifique qui est préfixée dans le chemin de configuration de MiniMagick, assurant ainsi qu’elle s’applique à chaque processus ImageMagick lancé par MiniMagick.

Photo documentaire d'une main gantée insérant une clé USB dans une station de travail, avec un écran technique flou en arrière-plan.

Que faire maintenant

L’impératif, selon les recommandations de Rails, est la mise à jour immédiate. En plus de passer à une version corrigée d’activestorage, les applications utilisant :mini_magick doivent s’assurer d’utiliser mini_magick version 5.1 ou ultérieure, sous peine de faire planter l’application au démarrage. L’entreprise doit aussi vérifier que la nouvelle politique de sécurité est bien chargée par l’application, en exécutant la commande `bin/rails runner ‘puts MiniMagick.identify { |i| i.list

Fiche technique

CVE Produit Gravité Exploitée activement Versions corrigées
CVE-2026-66066 activestorage (rubygems), activestorage (rubygems) Critique (CVSS 9,5) Non signalée activestorage 7.2.3.2, activestorage 8.0.5.1, activestorage 8.1.3.1

Données : NVD (NIST) et GitHub Advisory Database (CC BY 4.0, données adaptées).

Sources