Vulnérabilité critique dans une bibliothèque PHP populaire : une menace pour des milliers de sites

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Vulnérabilité critique dans une bibliothèque PHP populaire : ce que les développeurs doivent savoir



Une équipe de chercheurs en cybersécurité de la société SonarSource a publié un rapport sur une vulnérabilité critique découverte dans l'une des bibliothèques PHP les plus répandues pour le travail avec les templates — Smarty. La vulnérabilité, identifiée sous le code CVE-2024-35227, permet à un attaquant d'exécuter à distance du code arbitraire sur le serveur, ce qui peut entraîner une compromission totale de l'application web.



Détails de la vulnérabilité



Le problème est lié au mécanisme de traitement des entrées utilisateur dans la fonction fetch() de la bibliothèque Smarty. En cas de configuration non sécurisée et d'absence de filtrage des données, un attaquant peut transmettre une chaîne malveillante qui sera interprétée comme du code PHP. Selon l'échelle CVSS v3.1, la vulnérabilité a obtenu le score maximal 9.8 (Critique).



Caractéristiques principales de la vulnérabilité :

  • Vecteur d'attaque : distant (Réseau)
  • Complexité d'exploitation : faible (Faible)
  • Privilèges requis : aucun (Aucun)
  • Impact sur l'intégrité : total (Élevé)


Versions concernées



La vulnérabilité affecte toutes les versions de la bibliothèque Smarty jusqu'à 4.3.2 et 5.0.1. Les développeurs de la bibliothèque ont déjà publié des correctifs dans les versions 4.3.3 et 5.0.2 respectivement. Il est fortement recommandé à tous les utilisateurs de mettre à jour immédiatement la bibliothèque.



Comment vérifier la vulnérabilité de votre projet



Pour vous assurer que votre projet n'est pas exposé au risque, suivez les étapes suivantes :

  • Vérifiez la version de Smarty dans le fichier composer.json ou vendor/smarty/smarty/Smarty.class.php.
  • Si la version est inférieure à 4.3.3 ou 5.0.2 (selon la branche), effectuez la mise à jour : composer update smarty/smarty.
  • Vérifiez tous les endroits du code où la fonction fetch() est utilisée avec des données utilisateur.


Recommandations de protection



Outre la mise à jour immédiate de la bibliothèque, les experts conseillent de suivre les règles générales de sécurité :

  • Filtrez et échappez toujours les entrées utilisateur.
  • Utilisez le principe des privilèges minimaux pour les opérations sur les fichiers.
  • Mettez régulièrement à jour toutes les dépendances du projet.
  • Appliquez des outils d'analyse statique de code (SAST) pour rechercher des vulnérabilités.


Historique et contexte



Smarty est l'une des plus anciennes bibliothèques PHP de templating, publiée en 2004. Elle est utilisée dans des CMS populaires tels que Drupal (via des modules), PrestaShop et de nombreux projets personnalisés. Selon les estimations des analystes, la vulnérabilité affecte potentiellement plus de 100 000 sites web dans le monde.



Ce n'est pas le premier problème de sécurité grave dans cette bibliothèque. En 2021, une vulnérabilité CVE-2021-29454 liée à l'injection de templates avait été découverte. Les développeurs de Smarty publient rapidement des correctifs, mais le nombre de versions obsolètes en production reste élevé.

Recommended Libraries