PbootCMS
CVE-2025-15154
MEDIUM
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSend HTTP request to PbootCMS
-
ExploitInject forged X-Forwarded-For header
-
Executionget_user_ip trusts spoofed value
-
ImpactSpoofed IP used in access/log decision
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V6 - Authentication IP-independent access control
|
| Exploitation Conditions | The get_user_ip() function in core/function/handle.php reads the client-supplied X-Forwarded-For HTTP header and trusts it as the source IP without validating that it came from a trusted upstream proxy. Exploitation requires no authentication, no user interaction, and no non-default configuration - any remote client can set the header. The practical impact is LIMITED by how a deployment consumes the returned IP: it is only security-relevant where PbootCMS (or surrounding logic) uses that IP for access control, rate limiting, geolocation, or audit logging; where the IP is merely displayed or unused, the effect is negligible. There is no RCE, no data read, and no service disruption. |
| Impact | This is a genuinely low-to-moderate risk issue that should not be over-prioritized despite the network attack vector. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N) confirms remote, unauthenticated, low-complexity exploitation, but the impact metrics are the decisive signal: VC:N/VI:L/VA:N means only a limited integrity effect and no confidentiality or availability loss - consistent with CWE-348 (Use of Less Trusted Source), i.e. the attacker can spoof the client IP that PbootCMS derives from the X-Forwarded-For header. EPSS is low at 0.25% (15th percentile), the CVE is NOT on CISA KEV, and no active exploitation is reported; the only elevated signal is that public exploit code exists (E:P in the vector and an 'exploit' reference), so exploitation is possible but there is no evidence of real-world weaponization. The signals are internally consistent - no network-vs-local contradiction - so the correct read is a credible but low-severity IP-spoofing/log-injection weakness, not an emergency. Its real-world danger is entirely dependent on whether a given deployment uses the returned IP for a security decision (see exploitation_conditions); absent that, impact is cosmetic. |
| Exploit ScenarioDerived | An attacker sends an HTTP request to a PbootCMS site with a forged X-Forwarded-For header, causing get_user_ip() to return an attacker-controlled IP address. Because public exploit code is available, this can be used to spoof the logged/trusted source IP to evade IP-based restrictions, poison access logs, or bypass naive IP allow/deny or rate-limiting logic. No authentication or user interaction is required. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 13, 2026
IP address spoofing in PbootCMS up to and including 3.2.12 lets remote unauthenticated attackers forge their apparent source IP by supplying an arbitrary X-Forwarded-For header, because the get_user_ip() routine in core/function/handle.php treats the client-controlled header as a trusted source. Publicly available exploit code exists and the EPSS score is low at 0.25% (15th percentile), and there is no indication of confirmed active exploitation (no CISA KEV listing). The practical impact is limited to integrity where the deployment consumes the returned IP for access control, rate limiting, geolocation, or audit logging; systems that merely display or ignore the value are effectively unaffected, and there is no code execution, data read, or service disruption.
RemediationAI
No vendor-released patch, commit, or fixed version is identified in the available data (references point only to the VulDB entries and a public exploit write-up), so defenders should treat this as an unpatched code-path weakness and apply compensating controls. The most effective mitigation is to prevent client-supplied X-Forwarded-For values from reaching get_user_ip(): configure the front-end web server or reverse proxy to overwrite the header with the true peer address, for example in nginx by combining set_real_ip_from with real_ip_header and real_ip_recursive so only trusted proxy ranges are honored, and reject or strip XFF from untrusted sources; the trade-off is that legitimate multi-hop CDN or load-balancer architectures will lose the original client address unless every trusted hop is enumerated. In application code, replace reliance on the parsed XFF value with the server-provided REMOTE_ADDR for any authorization, rate-limiting, geolocation, or audit decision, accepting that clients behind NAT or a proxy will share an address. If a deployment cannot stop trusting the header, remove or disable features that make security decisions based on get_user_ip()'s return value, and tighten monitoring around access-control or rate-limit bypasses, understanding that this reduces functionality rather than fixing the root cause. Track the VulDB entries for an eventual upstream fix and apply it as soon as a tagged release is published, since the fix will likely normalize or ignore untrusted X-Forwarded-For input.
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
CWE-348 describes the use of a less trusted source of data, and here the affected technology is the PHP-based PbootCMS content management system. Within core/function/handle.php, the get_user_ip() function reads the X-Forwarded-For HTTP request header and returns it as the client IP without validating that the header was inserted by a trusted upstream proxy. The X-Forwarded-For header is a de facto standard for conveying the original client address through reverse proxies, CDNs, and load balancers, but it is trivially spoofable by any direct client unless the front-end is configured to strip or overwrite untrusted values. Because PbootCMS ships this helper as part of its header-handling component, any module that relies on the returned value inherits the spoofing weakness. The CPE string cpe:2.3:a:pbootcms:pbootcms:*:*:*:*:*:*:*:* covers all versions in the repository entry, with the vulnerable range bounded by the 3.2.12 release described in the disclosure.
Know when Pbootcms gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N/E:P
Remotely spoofable header requires no auth or interaction (AV:N/AC:L/PR:N/UI:N); only a limited integrity effect on trusted source data (I:L), with no confidentiality or availability impact.
Primary rating from Vendor (vuldb).
CVSS VectorVendor: vuldb
DescriptionCVE.org
A security vulnerability has been detected in PbootCMS up to 3.2.12. The affected element is the function get_user_ip of the file core/function/handle.php of the component Header Handler. The manipulation of the argument X-Forwarded-For leads to use of less trusted source. The attack can be initiated remotely. The exploit has been disclosed publicly and may be used.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Affected Products (CPE)CVE.org
PbootCMS below v3.2.0 was discovered to contain a command injection vulnerability via create_function. Rated critical se
PbootCMS v3.1.2 was discovered to contain a remote code execution (RCE) vulnerability via the function parserIfLabel at
SearchController.php in PbootCMS 1.2.1 has SQL injection via the index.php/Search/index.html query string. Rated critica
PbootCMS V1.3.1 build 2018-11-14 allows remote attackers to execute arbitrary code via use of "eval" with mixed case, as
apps\admin\controller\content\SingleController.php in PbootCMS before V1.3.0 build 2018-11-12 has SQL Injection, as demo
An issue was discovered in PbootCMS v1.0.9. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploitab
PbootCMS v0.9.8 allows PHP code injection via an IF label in index.php/About/6.html or admin.php/Site/index.html, relate
SQL Injection vulnerability in pbootCMS versions 3.2.5 and 3.2.10 that allows unauthenticated remote attackers to execut
An issue was discovered in PbootCMS v1.0.7. Rated high severity (CVSS 8.8), this vulnerability is remotely exploitable,
PbootCMS v0.9.8 has CSRF via an admin.php/Message/mod/id/19.html?backurl=/index.php request, resulting in PHP code injec
PbootCMS 1.2.1 has SQL injection via the HTTP POST data to the api.php/cms/addform?fcode=1 URI. Rated high severity (CVS
Aoyun Technology pbootcms V3.1.2 is vulnerable to Incorrect Access Control, allows remote attackers to gain sensitive in
NVD
CVE.org
EPSS
VulDB
GitHub PoC
Exploit-DB