Cyberattaques alimentées par l'IA : Comment détecter, prévenir et se défendre contre les menaces intelligentes

Lire la suite
Nous utilisons l'intelligence artificielle pour les traductions de sites et, bien que nous nous efforcions d'être précis, il se peut que les traductions ne soient pas toujours exactes à 100 %. Nous vous remercions de votre compréhension.

CVE-2025-24293 critique dans Ruby on Rails - RCE de stockage actif découvert par l'unité 515 d'OPSWAT

par OPSWAT
Partager cet article

Introduction à Ruby on Rails

Ruby on Rails (Rails) est un framework web à pile complète, Modèle-Vue-Contrôleur (MVC) construit avec Ruby. Il est livré "batteries incluses", offrant aux développeurs tout ce dont ils ont besoin : un mappeur objet-relationnel (Active Record), une couche de requête/réponse et de vue (Action Pack/Action View), le traitement des tâches en arrière-plan, les expéditeurs, la prise en charge de WebSocket, le stockage et le téléchargement de fichiers (Active Storage), et bien d'autres choses encore.

Depuis sa sortie en 2004, Ruby on Rails est devenu l'un des frameworks web les plus largement adoptés au monde. Aujourd'hui, il alimente des millions de sites web et d'applications, y compris des plateformes de premier plan telles que GitHub, Shopify, Airbnb, Basecamp et Netflix. En mettant l'accent sur la convention plutôt que sur la configuration, la productivité des développeurs et le prototypage rapide, Rails est devenu un cadre de référence pour les startups comme pour les grandes entreprises.

Unité 515 Recherche : Exposer les vulnérabilités critiques de Rails

Au cours d'une recherche indépendante, Thai Do, membre de l'équipe de l'unité 515 d'OPSWAT, a identifié deux vulnérabilités dans Ruby on Rails - dont l'une pourrait conduire à l'exécution d'un code à distance (RCE). Ces résultats ont été divulgués de manière responsable à l'équipe de sécurité de Rails, avec laquelle OPSWAT s'est coordonné tout au long du processus.

Le 13 août 2025, l'équipe Rails a publié des avis publics et mis à disposition des versions corrigées des deux vulnérabilités.

Versions concernées et versions corrigées

Composant
Versions concernées
Versions corrigées
Stockage actif (CVE-2025-24293)
Rails ≥ 5.2.0 et en dessous de la version corrigée
7.1.5.2, 7.2.2.2, 8.0.2.1
Journalisation des enregistrements actifs (CVE-2025-55193)
Rails < 7.1.5.2, < 7.2.2.2, < 8.0.2.1
7.1.5.2, 7.2.2.2, 8.0.2.1

Problèmes de sécurité identifiés dans Rails

CVE-2025-24293 - Méthodes de transformation non sûres pour Active Storage

Cette vulnérabilité affecte Active Storage dans les versions ≥ 5.2.0 de Rails. Elle se produit lorsque des méthodes de transformation d'images non sûres sont transmises à mini_magick, ce qui - combiné à une entrée utilisateur non validée - pourrait conduire à une exécution de code à distance (RCE). Bien que Rails note que la faille n'est pas exploitable dans la configuration par défaut, les applications qui exposent les options de transformation aux utilisateurs sont particulièrement à risque.

CVE-2025-55193 - Injection de l'échappement ANSI dans la journalisation des enregistrements actifs

Cette vulnérabilité affecte la journalisation Active Record dans toutes les versions de Rails antérieures à 7.1.5.2, 7.2.2.2, et 8.0.2.1. Les attaquants peuvent injecter des identifiants spécialement conçus contenant des séquences d'échappement ANSI dans les journaux, manipulant potentiellement la façon dont les requêtes apparaissent dans la sortie du terminal et conduisant à des journaux trompeurs ou corrompus. Bien que cette faille n'expose pas directement les données ou ne permette pas l'exécution de code, elle pourrait entraver les efforts de surveillance et de réponse aux incidents. L'équipe de sécurité de Rails a résolu le problème dans les mêmes versions corrigées.

Analyse technique de CVE-2025-24293 - Exécution de code à distance par Active Storage

Aperçu du stockage actif

Active Storage est le cadre intégré de Rails pour gérer les téléchargements de fichiers. Il permet aux développeurs d'attacher des fichiers aux modèles Active Record et de les stocker soit localement (pour le développement/test), soit sur des services en nuage tels qu'Amazon S3, Google Cloud Storage ou Microsoft Azure. Les fonctionnalités de Core comprennent la transformation d'images, la génération d'aperçus pour les fichiers autres que des images, tels que les PDF et les vidéos, et la mise en miroir des téléchargements vers plusieurs services à des fins de redondance ou de migration.

Comment fonctionnent les transformations d'images

Les transformations d'images permettent aux développeurs de fournir des pièces jointes dans des dimensions ou des formats spécifiques. Pour ce faire, il suffit d'appeler la méthode variant() sur une image jointe et de lui transmettre les opérations prises en charge.

Lorsqu'un client demande une URL variante, Active Storage effectue la transformation à la demande à partir du blob d'origine, stocke le résultat sur le service configuré et renvoie une redirection vers le fichier nouvellement généré.

Rails prend en charge deux processeurs pour les transformations d'images : Vips et MiniMagick. Le processeur utilisé peut être configuré via config.active_storage.variant_processor.

Les opérations spécifiques prises en charge dans les transformations d'images sont déterminées par la gem image_processing et dépendent du processeur sous-jacent configuré pour l'application Rails.

Correction incomplète de CVE-2022-21831

En mars 2022, l'équipe Rails a divulgué CVE-2022-21831, une vulnérabilité critique d'injection de code dans la fonction de transformation d'images d'Active Storage. Le correctif a introduit une liste d'autorisation par défaut des méthodes de transformation pour atténuer le problème.

Cependant, lors d'un examen plus approfondi du correctif et du code source de Rails, Thai DoOPSWAT Unit 515) a découvert un contournement qui rendait le correctif original incomplet. Ce contournement a réintroduit une voie permettant aux attaquants de réaliser une exécution de code à distance (RCE), ce qui a conduit à la divulgation de CVE-2025-24293.

Cause première dans le Gem image_processing

Lorsqu'une transformation est appliquée, Rails délègue l'opération à la gemme image_processing, qui appelle ImageProcessing::Processor#call dans lib/image_processing/processor.rb

Si le processeur de variantes configuré est MiniMagick, la vulnérabilité réside dans deux fonctions de lib/image_processing/mini_magick.rb:

-load_image - accepte les options non validées de **loader.

-save_image - accepte les options non validées de **saver.

Pour load_image, toutes les paires clé-valeur de **loader autres que page, geometry et auto_orient sont conservées dans **options. Il en va de même pour save_image, où les clés autres que allow_splitting restent dans **options. Ces options sont ensuite passées à Utils.apply_options(magick, **options), qui les applique en tant que drapeaux de l'interface de programmation de MiniMagick (par exemple, -quality).

Bien que loader et saver soient inclus dans la liste d'autorisation par défaut et donc considérés comme sûrs, cette confiance est mal placée. Avec une entrée soigneusement élaborée, un attaquant peut exploiter ces options pour contourner les vérifications et finalement amener Rails à exécuter des commandes système arbitraires sur la machine hôte.

Scénario d'exploitation dans les applications Rails

Si une application transmet des données utilisateur non validées directement dans les méthodes de transformation, par exemple :

Un attaquant peut créer une entrée malveillante pour manipuler les options du chargeur ou de l'économiseur. Cela permettrait de contourner la liste d'autorisation et d'exécuter des commandes arbitraires sur le serveur, ce qui entraînerait une exécution de code à distance (RCE).

Preuve de concept : Exécution de code à distance

Dans les applications Rails utilisant des versions vulnérables (antérieures à 8.0.2.1, 7.2.2.2 et 7.1.5.2), l'unité 515 de OPSWAT a réussi à démontrer une chaîne d'exploitation dans laquelle une entrée de transformation non validée entraînait l'exécution d'une commande shell.

Ce PoC vidéo démontre l'exploitabilité de CVE-2025-24293 et met en évidence l'impact réel sur les applications Rails :

Services d'atténuation et de tests de pénétration professionnels

Les organisations devraient traiter les CVE-2025-24293 et CVE-2025-55193 en mettant à jour Ruby on Rails avec les dernières versions de sécurité (7.1.5.2, 7.2.2.2, ou 8.0.2.1). S'il n'est pas possible d'appliquer immédiatement un correctif, il est possible de prendre des mesures de protection temporaires, notamment en limitant les transformations d'images à des préréglages prédéfinis, en validant et en assainissant les entrées des utilisateurs, en renforçant les politiques d'ImageMagick et en veillant à ce que les journaux ne puissent pas interpréter les séquences d'échappement ANSI.

Cependant, l'application de correctifs n'élimine pas tous les risques dans les environnements web modernes. La logique commerciale personnalisée, les intégrations de tiers et les pipelines de déploiement complexes créent souvent des voies exploitables qui vont au-delà des avis des fournisseurs. C'est pourquoi les tests de pénétration des applications web sont essentiels.

Chez OPSWAT, l'unité 515 fournit des services spécialisés de test de pénétration des applications web qui vont bien au-delà des scanners automatisés ou des audits de listes de contrôle. Notre équipe est composée d'experts chevronnés en sécurité offensive qui possèdent des années d'expérience dans le test d'applications à grande échelle dans divers secteurs d'activité. En utilisant une méthodologie systématique et contradictoire, nous découvrons des vulnérabilités dans les flux d'authentification, la validation des entrées, le contrôle d'accès et le traitement des données - des problèmes qui peuvent persister même dans des frameworks entièrement corrigés tels que Ruby on Rails.

Chaque mission associe une expertise technique approfondie à des rapports adaptés à l'entreprise, fournissant des informations claires et exploitables qui permettent aux équipes de développement de remédier efficacement aux failles. En faisant appel à Unit 515, les entreprises ont l'assurance que leurs applications critiques sont testées par des experts qui ne se contentent pas de simuler des techniques d'attaque réelles, mais qui valident également que les correctifs apportés comblent réellement les lacunes. Cette expertise renforce les efforts de remédiation, réduit le risque résiduel et augmente la résilience globale de l'application face à l'évolution des menaces.

Tags :

Restez à jour avec OPSWAT!

Inscrivez-vous dès aujourd'hui pour recevoir les dernières mises à jour de l'entreprise, de l'entreprise, des histoires, des informations sur les événements, et plus encore.