Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify IP-restricted aaPanel endpoint
-
DeliveryCraft request with forged X-Real-Ip header
-
ExploitGetClientIp trusts spoofed value
-
ExecutionBypass IP-based access control
-
ImpactReach restricted functionality
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Access control enforcement
MITRE ATT&CK
1 technique across 1 tactic: Defense Evasion The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires that the aaPanel deployment relies on IP-based access control or logging that uses the client IP derived from GetClientIp, and that the application trusts the attacker-supplied X-Real-Ip request header without validating it against a trusted reverse proxy. The concrete prerequisite is any configuration where source-IP allowlisting is used as a security boundary; the limiting factor is that instances which do not use IP-based restrictions (or which strip/override X-Real-Ip at a trusted proxy) gain little from the bypass. No authentication is required per the CVSS vector (PR:N), and exploitation affects aaPanel versions up to 8.25.0. |
| Impact | This is a moderate-severity access-control bypass (CWE-284) in aaPanel's GetClientIp function, where the X-Real-Ip HTTP header is trusted as the client's source IP. The supplied CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N) indicates remote, low-complexity, unauthenticated exploitation, but the impact metrics are deliberately narrow (VC:L, VI:N, VA:N) - only a limited confidentiality effect, no integrity or availability impact - which is consistent with the CVSS 6.9 (MEDIUM) score rather than a critical rating. The E:P (Proof-of-Concept) exploit maturity aligns with the input signal that a public POC exists on GitHub. This CVE is NOT in CISA KEV and no EPSS score was provided, so there is no evidence of widespread automated exploitation; the signals point to a real but bounded issue - useful for bypassing IP-based allowlists rather than direct compromise. The vendor (aaPanel) has confirmed the issue is fixed, which raises confidence that the vulnerability is genuine, but no specific patched version is given in the input. Net: a legitimate, publicly-exploitable weakness that chiefly matters where IP allowlisting is the security control, not a high-urgency RCE-class priority. Note the only reporting source is VulDB; no independent NVD or vendor advisory text is provided beyond the vendor's quoted confirmation. |
| Exploit ScenarioDerived | An attacker who knows that an aaPanel instance restricts access (e.g., to a management endpoint) by source IP sends a request with a forged X-Real-Ip header set to a whitelisted/trusted address, causing GetClientIp to treat the request as originating from an allowed IP and bypassing the access control. A public proof-of-concept exists on GitHub (JdExploit/aapanel-cve-2026), and because CVSS indicates network vector with low complexity and no authentication, the request can be sent directly without special tooling. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 20, 2026
aaPanel through 8.25.0 derives the client IP in GetClientIp (class/public/common.py) from the attacker-controllable X-Real-Ip request header, allowing remote unauthenticated attackers to spoof their source address and slip past IP-based access restrictions or poison IP-based logging. The impact is bounded - confidentiality-only at low severity per the assessed vector (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N) - and only materializes where IP allowlisting is actually used as a security boundary and no trusted proxy strips or rewrites the header. Publicly available exploit code exists (a GitHub PoC targeting the X-Real-Ip bypass), and the vendor states the issue has already been fixed.
RemediationAI
Upgrade aaPanel to a release newer than 8.25.0, which the vendor confirms contains the fix for the X-Real-Ip bypass, and verify the deployed version after upgrading (see https://vuldb.com/vuln/422749 for the advisory trail). Where an immediate upgrade is not possible, stop treating the panel's derived client IP as a security boundary: front aaPanel with a reverse proxy or load balancer that unconditionally overwrites or strips the X-Real-Ip header on inbound requests, so attacker-supplied values never reach GetClientIp - the trade-off is that any legitimate upstream proxy chain must be reconfigured to inject the header itself, otherwise real client IPs are lost from logs. Additionally, replace IP allowlisting with network-layer restrictions (firewall rules, VPN, or an authenticated bastion) that cannot be influenced by request headers, and restrict panel exposure on the public internet; note that these compensating controls reduce exposure but do not remediate the underlying code path. Review IP-dependent audit logs for entries with implausible or internal source addresses that may indicate prior bypass attempts.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The flaw is an improper access control weakness (CWE-284) in aaPanel's shared request-handling helper: GetClientIp in class/public/common.py trusts the client-supplied X-Real-Ip HTTP header as the authoritative source address instead of using the transport-layer peer address or only honoring the header when the request arrives from a configured, trusted reverse proxy. Because HTTP headers are fully attacker-controlled, any remote client can assert an arbitrary IP - for example one inside an administrative allowlist - and the panel will treat that value as the real origin for authorization and audit decisions. The affected CPE is cpe:2.3:a:n/a:aapanel:*:*:*:*:*:*:*:* (aaPanel up to 8.25.0). Exploitation is trivial and unauthenticated (PR:N in the CVSS vector, E:P indicating a proof-of-concept is publicly available) but its value is configuration-dependent: deployments that do not gate access by source IP, or that terminate traffic at a proxy which overwrites X-Real-Ip, are largely unaffected.
Know when Aapanel 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:L/VI:N/VA:N/SC:N/SI:N/SA:N/E:P
Remote unauthenticated header spoofing (AV:N/AC:L/PR:N/UI:N); bypassing IP access control yields limited confidentiality exposure (C:L) with no integrity or availability impact.
Primary rating from Vendor (VulDB).
CVSS VectorVendor: VulDB
Lifecycle Timeline
2DescriptionCVE.org
A vulnerability was found in aaPanel up to 8.25.0. The impacted element is the function GetClientIp of the file class/public/common.py. The manipulation of the argument X-Real-Ip results in improper access controls. The attack may be performed from remote. The exploit has been made public and could be used. The vendor confirms: "The reported X-Real-Ip IP-bypass vulnerability has already been fixed".
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
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
aaPanel through 6.8.12 allows Cross-Site WebSocket Hijacking (CSWH) involving OS commands within WebSocket messages at a
aaPanel through 6.6.6 allows remote authenticated users to execute arbitrary commands via shell metacharacters in a modi
Authenticated remote command injection in aaPanel through 8.25.0 allows a logged-in panel user to execute arbitrary oper
OS command injection in aaPanel/BaoTa versions up to 11.8.0 allows an authenticated attacker with access to the administ
aaPanel through 6.6.6 allows remote authenticated users to execute arbitrary commands via the Script Content box on the
aaPanel v6.8.21 was discovered to be vulnerable to directory traversal. Rated medium severity (CVSS 6.5), this vulnerabi
Unauthenticated attackers can forge unsubscribe and subscribe-confirmation JWTs against BillionMail through version 4.9
Authenticated path traversal in aaPanel through version 8.25.0 lets a logged-in panel user read files outside the intend
SQL injection in aaPanel (BaoTa) 11.8.0 and earlier allows an authenticated attacker with high panel privileges to injec
SQL injection in the aaPanel BaoTa server control panel (versions up to 11.8.0) lets a user who already holds a high-pri
AAPanel v7.0.7 was discovered to contain an OS command injection vulnerability. Rated medium severity (CVSS 6.5), this v
EUVD-2026-105215
GHSA-vvxf-x39h-gvfp
NVD
CVE.org
EPSS
VulDB
Exploit-DB