Faille Rails critique : écriture de fichiers via ImageMagick

Une faille Rails critique permet d'écrire des fichiers sur le serveur via ImageMagick. Des correctifs sont disponibles.
Une faille Rails critique inquiète les équipes qui développent avec Ruby on Rails. Elle permettrait à un attaquant non authentifié d’écrire des fichiers arbitraires sur le serveur d’une application. En effet, il lui suffirait d’envoyer un fichier spécialement conçu. Toutefois, l’attaque ne fonctionne que si l’application traite les envois avec ImageMagick.
Le projet Rails a publié un avis de sécurité détaillant le problème. Par ailleurs, les correctifs sont disponibles dans les versions 8.1.4.1 et 8.0.5.2.
Une faille Rails critique dans Active Storage
Le défaut se situe dans Active Storage. Ce composant de Rails gère les envois de fichiers par les utilisateurs. Ainsi, il permet, par exemple, d’associer une photo de profil ou un document à un enregistrement de la base de données.
Les applications Web acceptent très souvent ce type de contenu. Elles exposent donc naturellement une surface d’attaque. Cependant, le risque vient ici de la façon dont certains fichiers sont ensuite traités.
La gravité est jugée critique pour plusieurs raisons :
- l’attaquant n’a pas besoin de compte ni d’authentification ;
- l’action possible est l’écriture de fichiers arbitraires sur le serveur ;
- le point d’entrée est un simple envoi de fichier, une fonction courante.
À ce stade, les informations disponibles ne mentionnent pas d’identifiant CVE. Il faudra donc consulter l’avis officiel du projet Rails. Cet avis donne cette référence et les détails complets.
Comment l’attaque peut-elle se produire ?
Le scénario repose sur une condition précise. L’application doit confier le traitement des fichiers envoyés à ImageMagick. En effet, cette bibliothèque sert souvent à redimensionner, convertir ou transformer des images.
D’abord, l’attaquant prépare un fichier piégé. Ensuite, il l’envoie à l’application comme n’importe quel utilisateur. Enfin, le traitement par ImageMagick permet d’écrire un fichier à un emplacement choisi sur le serveur.
Cette capacité est préoccupante. En effet, l’écriture de fichiers arbitraires donne souvent à un attaquant de sérieuses possibilités. Il peut par exemple modifier des ressources de l’application ou déposer du contenu malveillant. Toutefois, l’impact réel dépend de la configuration, notamment des droits du processus qui exécute l’application.
En revanche, une application qui n’utilise pas ImageMagick pour ces traitements n’est pas concernée par ce scénario. Il reste néanmoins prudent de vérifier sa configuration avant de conclure. En effet, certaines dépendances peuvent l’employer sans que l’équipe le sache.
Quelles versions corriger en priorité ?
Le projet Rails a corrigé le défaut dans deux versions de maintenance :
- Rails 8.1.4.1 pour la branche 8.1 ;
- Rails 8.0.5.2 pour la branche 8.0.
Les applications qui utilisent ces branches doivent donc migrer vers ces versions. En revanche, les équipes qui exploitent une autre branche doivent lire l’avis officiel. Elles y trouveront les informations exactes sur les versions touchées et sur les correctifs disponibles.
Par ailleurs, les applications qui traitent des envois publics sont les plus exposées. En effet, un formulaire ouvert à des visiteurs anonymes permet à un attaquant d’agir sans compte. Ces applications doivent donc passer en tête de liste.
Que faire face à cette faille Rails ?
La première action est simple : mettre à jour. Ensuite, il faut vérifier que le déploiement utilise bien la version corrigée. En effet, une mise à jour oubliée sur un serveur de production laisse la porte ouverte.
Plusieurs mesures complémentaires peuvent réduire les risques. Elles relèvent des bonnes pratiques générales. Cependant, elles ne remplacent pas le correctif :
- identifier les applications qui utilisent Active Storage avec ImageMagick ;
- exécuter le processus de l’application avec les droits minimaux ;
- restreindre les dossiers où l’application peut écrire ;
- limiter les types de fichiers acceptés lors des envois ;
- surveiller les journaux à la recherche d’envois inhabituels.
De plus, il est utile d’examiner le serveur pour détecter des fichiers inattendus. En effet, une compromission antérieure au correctif est possible. Une revue des fichiers récemment créés peut donc révéler une exploitation passée.
Ce qu’il faut retenir
- La faille touche Active Storage, le module d’envoi de fichiers de Ruby on Rails.
- Un attaquant non authentifié peut écrire des fichiers sur le serveur via un fichier piégé.
- L’attaque suppose que l’application traite les envois avec ImageMagick.
- Les versions corrigées sont Rails 8.1.4.1 et Rails 8.0.5.2.
- Il faut appliquer la mise à jour rapidement et consulter l’avis officiel du projet Rails.
Source : Critical Rails Flaw Lets Attackers Write Server Files via Crafted ImageMagick Uploads