Résumé
CVE-2023-3824une vulnérabilité de débordement de tampon dans l'extension PHAR de PHP, affecte également les installations PHP 7, bien que les avis officiels ne mentionnent que les versions PHP 8+. Cette vulnérabilité est particulièrement préoccupante car une preuve de concept (PoC) est publiquement disponible sur GitHub, ce qui réduit considérablement la barrière pour les attaquants potentiels.
Notes de risque pour cette vulnérabilité :
9.8 CVSS 3.x de NVD
9.4 CVSS 3.x de Groupe PHP
La vulnérabilité expliquée
CVE-2023-3824 est une vulnérabilité de débordement de tampon dans l'extension PHAR de PHP qui se produit en raison d'une vérification incorrecte des limites dans la fonction phar_dir_read() de la fonction phar_dir_read(). Lorsqu'une application PHP ouvre un fichier .phar spécialement conçue, cette vulnérabilité peut être déclenchée, entraînant :
- Débordement de la mémoire tampon de la pile
- Corruption de la mémoire
- Fuite d'informations de la pile
- Possibilité d'exécution de code à distance (RCE)
- Conditions de refus de service
La gravité de cette vulnérabilité est accentuée par le fait que l'ouverture d'un fichier PHAR malveillant est la seule condition pour déclencher l'exploit, ce qui le rend relativement facile à mettre en œuvre contre des systèmes vulnérables.
PHP 7 : vulnérable et non corrigé
L'avis officiel pour CVE-2023-3824 indique qu'il affecte :
- PHP 8.0.* avant 8.0.30
- PHP 8.1.* avant 8.1.22
- PHP 8.2.* avant 8.2.8
Cependant, nos recherches en matière de sécurité ont confirmé que les installations de la série PHP 7 sont également vulnérables à ce même problème. Il s'agit d'une faille de sécurité importante, car :
- PHP 7 a atteint le statut de fin de vie (EOL)
- Aucun correctif officiel n'est disponible auprès des mainteneurs de PHP
- Un exploit public rend cette vulnérabilité particulièrement dangereuse pour les systèmes non corrigés.
Détails techniques et risque d'exploitation publique
Ce qui rend CVE-2023-3824 particulièrement inquiétant, c'est la disponibilité d'une preuve de concept publique sur GitHub, ce qui réduit considérablement la barrière à l'exploitation. La vulnérabilité peut être exploitée par le biais d'un processus simple en deux étapes :
- Tout d'abord, un pirate peut créer un fichier PHAR malveillant avec des noms d'entrée de répertoire spécifiquement manipulés qui approchent ou dépassent la longueur de chemin maximale de PHP (PHP_MAXPATHLEN)
- Ensuite, lorsque l'on accède à ce fichier artisanal par l'intermédiaire de l'enveloppe de flux PHAR de PHP, la vulnérabilité est déclenchée.
Le problème technique est dû au fait que la fonction phar_dir_read() ne valide pas correctement les longueurs d'entrée avant d'écrire dans un tampon de pile. Lorsque l'installation vulnérable de PHP traite un fichier PHAR malveillant avec des entrées de répertoire soigneusement conçues, la vérification insuffisante de la longueur conduit à un débordement du tampon de la pile. Cela peut provoquer une corruption de la mémoire et potentiellement permettre à des attaquants de :
- Lire des données sensibles dans la mémoire
- Exécuter un code arbitraire sur le système affecté
- provoquer des pannes d'application et des interruptions de service
Comparaison avec CVE-2023-0568
Cette vulnérabilité présente des similitudes avec la CVE-2023-0568 (abordée dans un article précédent), car toutes deux impliquent des problèmes de débordement de mémoire tampon qui pourraient entraîner une corruption de la mémoire. Cependant, CVE-2023-3824 représente une menace plus immédiate pour les raisons suivantes :
- La mise à disposition du public d'un programme d'exploitation opérationnel
- Son potentiel d'exécution de code à distance
- Le vecteur d'attaque relativement simple (traitement d'un fichier PHAR)
Notre solution : Support du cycle de vie sans fin pour PHP 7
Comme pour CVE-2023-0568, nous comprenons que de nombreuses organisations continuent d'exécuter des applications PHP 7 en raison d'exigences de compatibilité ou de contraintes de ressources. Notre service Endless Lifecycle Support (ELS) comble cette lacune en fournissant :
- Patches de sécurité personnalisés: Nous avons développé des correctifs pour PHP 7 qui traitent les vulnérabilités CVE-2023-3824 et d'autres vulnérabilités connues.
- Mise à jour des paquets PHP 7: Disponible pour les environnements Windows et Linux
- Surveillance proactive de la sécurité: Identification continue des vulnérabilités qui affectent PHP 7, même si elles ne sont pas officiellement reconnues.
Actions recommandées
Si votre organisation utilise PHP 7, nous recommandons fortement les actions immédiates suivantes :
- Appliquer nos correctifs de sécurité: Installez nos paquets PHP 7 corrigés pour vous protéger contre cette vulnérabilité.
- Désactiver le support PHAR s'il n'est pas nécessaire: Si vos applications ne nécessitent pas la fonctionnalité PHAR, envisagez de la désactiver temporairement.
- Mettre en œuvre des contrôles de sécurité supplémentaires: Envisager des pare-feu d'application web ou d'autres mesures de sécurité capables de détecter et de bloquer les tentatives d'exploitation.
Réflexions finales
La découverte de CVE-2023-3824 affectant PHP 7, combinée à la disponibilité publique du code d'exploitation, crée une tempête parfaite pour les organisations utilisant des versions de PHP en fin de vie. Cette vulnérabilité montre pourquoi un support de sécurité étendu est crucial pour les organisations qui ne peuvent pas passer immédiatement à des versions plus récentes de PHP.
Notre support de cycle de vie sans fin pour PHP 7, pour Windows et Linux, fournit les mises à jour de sécurité nécessaires pour protéger vos systèmes pendant que vous planifiez et exécutez votre stratégie de migration à un rythme qui convient aux besoins de votre entreprise.

