OpenMage - CVE-2026-25524
Date de publication :
Il s'agit d'une vulnérabilité de désérialisation de données non fiables dans les modules de validation d'images et de gestion des médias d'OpenMage LTS.
OpenMage LTS est un fork communautaire open source de Magento Community Edition, maintenu par la communauté en tant qu'alternative long terme à la plateforme officielle. Il est utilisé pour le déploiement de boutiques e-commerce PHP, notamment dans le secteur de la vente en ligne de produits pharmaceutiques et de matériel médical.
Les fonctions PHP getimagesize(), file_exists() et is_readable() traitent des chemins de fichiers contrôlables par un attaquant sans filtrage du protocole phar://. Le format PHAR embarque des métadonnées sérialisées désérialisées automatiquement à l'accès, ce qui permet de déclencher une chaîne de gadgets PHP via un fichier polyglotte JPEG/PHAR déposé par upload (images produit, médias CMS).
Elle permet une exécution de code arbitraire à distance sans authentification, aboutissant à une compromission complète du serveur.
Informations
La faille est activement exploitée : Non
Un correctif existe : Oui
Une mesure de contournement existe : Oui
Exécution de code arbitraire (à distance)
Exploitation
CWE-502 : Deserialization of Untrusted Data
Détails sur l'exploitation
• Vecteur d'attaque : Réseau
• Complexité de l'attaque : Élevée
• Privilèges nécessaires pour réaliser l'attaque : Aucun
• Interaction d'un utilisateur ayant accès au produit est-elle nécessaire : Non
• L'exploitation de la faille permet d'obtenir des droits privilégiés : Oui
Preuve de concept
Une preuve de concept est disponible en sources ouvertes.
Systèmes ou composants affectés
OpenMage LTS (openmage/magento-lts) versions 20.16.0 et antérieures
Contournement provisoire
• Isoler le stockage des fichiers uploadés hors de la racine web avec des noms aléatoires
• Mettre en place des restrictions strictes sur les types de fichiers acceptés en upload
Solutions ou recommandations
• OpenMage LTS version 20.17.0 et supérieures (suppression du support ICO en upload, désactivation du wrapper phar:// au bootstrap, durcissement de toutes les appels unserialize()