Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain low-privileged aaPanel credentials
-
DeliveryAccess download endpoint (send_file in v2.py)
-
ExploitSupply traversal sequences in filename argument
-
ExecutionRead arbitrary files outside download directory
-
ImpactHarvest config/credentials for escalation
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK
2 techniques across 2 tactics: Discovery, Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires a valid authenticated aaPanel session with at least a low-privileged account (vendor explicitly states the LFI/RCE class requires authentication; CVSS PR:L), after which the attacker manipulates the 'filename' argument of the send_file download endpoint in BTPanel/routes/v2.py to escape the intended directory. No user interaction is needed and the endpoint is reachable over the network, but exploitation is LIMITED by: (1) the need for prior authentication to the panel, and (2) the operating-system file permissions of the aaPanel web process, which bound which files can be read. Affects aaPanel versions up to and including 8.25.0. |
| Impact | This is a moderate, authentication-gated path traversal (CWE-22) in aaPanel's download endpoint, and the signals are largely consistent rather than conflicting. The provided CVSS 4.0 vector (AV:N/AC:L/PR:L/UI:N) and the vendor's explicit statement - 'The reported RCE and LFI vulnerabilities require authentication' - agree that an attacker needs a valid low-privileged account, so this is NOT a pre-auth internet-wide crisis. Exploitation maturity is 'proof-of-concept' (E:P) and a public exploit is published on GitHub, which raises practical risk, but there is NO CISA KEV entry and NO EPSS score in the provided data, so there is no evidence of widespread automated exploitation at this time. The main caveat is impact scope: the input scores confidentiality as only VC:L, yet an arbitrary-file-read path traversal in a server control panel can typically expose sensitive files (panel config, credentials, keys) accessible to the web process, which would justify a higher confidentiality rating - this discrepancy should be verified against the actual file-access constraints of the send_file handler. Net: a real but authenticated, confidentiality-focused issue worth prioritizing for exposed/multi-tenant aaPanel instances, not a drop-everything unauthenticated RCE. |
| Exploit ScenarioDerived | An attacker who already holds a low-privileged, authenticated aaPanel account sends a request to the download endpoint (send_file in BTPanel/routes/v2.py) with a crafted 'filename' value containing directory-traversal sequences. Because the public exploit code exists (GitHub PoC), the attacker reuses it to read files outside the intended download directory - for example panel configuration or credential files - enabling further escalation such as the vendor-noted authenticated LFI/RCE paths. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 20, 2026
Authenticated path traversal in aaPanel through version 8.25.0 lets a logged-in panel user read files outside the intended download directory by manipulating the 'filename' argument of the send_file endpoint in BTPanel/routes/v2.py. Remote attackers who hold at least a low-privileged panel account can use ../ style sequences to escape the base path and disclose arbitrary files readable by the aaPanel web process, silently and without any user interaction. Publicly available exploit code exists (a dedicated GitHub PoC repository), and exploitation is gated by two real constraints: prior authentication and the operating-system permissions of the panel's service account.
RemediationAI
No vendor-released patch identified at time of analysis - the supplied references contain no fixed version or vendor security advisory, so confirm the current release status with aaPanel before assuming 8.25.0 is the final patched baseline. Until a fix is confirmed, apply compensating controls that directly address the two exploitation gates. First, restrict network reachability of the panel port (default 8888) to trusted management IPs via firewall/security-group rules or a VPN jump host; side effect is loss of public panel access for roaming administrators. Second, enforce least privilege for panel accounts and remove unused or low-privileged logins, since the CVSS vector confirms PR:L - this shrinks the pool of accounts that can reach the endpoint. Third, run the aaPanel service as an unprivileged, dedicated user (or inside a container/chroot with a minimal bind-mounted filesystem) so traversal reads cannot reach /etc/shadow, SSH keys, or database credentials; side effect is that some panel features expecting broader filesystem access may need reconfiguration. Fourth, add a reverse-proxy/WAF rule that rejects requests to the download route whose 'filename' parameter contains '..', encoded dot sequences, or absolute paths; side effect is possible breakage of legitimate nested-path downloads, so log-and-alert mode first is advisable. Finally, monitor panel access logs for anomalous download requests and treat any panel file disclosure as a credential compromise event requiring rotation of panel, database, and API secrets. Referenced intelligence: https://vuldb.com/vuln/422747 and https://github.com/JdExploit/aapanel-cve-2026/tree/master/aapanel-lfi.
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
aaPanel is a Python-based server control panel whose BTPanel component exposes a download route implemented in BTPanel/routes/v2.py. The send_file function passes a user-supplied 'filename' argument into the file-serving logic without adequate canonicalization, so relative traversal sequences (../) survive into the resolved path. This is the classic CWE-22 path traversal / local file inclusion pattern: the application trusts client-controlled path input and does not verify that the final absolute path remains inside the intended download root. Because the route is reachable over the network and returns file contents, successful traversal converts a download helper into an arbitrary-file-read primitive, limited by the privileges of the aaPanel web process - configuration files, credentials stores, and panel sources are the most exposed targets. The CPE entry (cpe:2.3:a:aapanel:aapanel) is a wildcard range, while the vendor and advisory text scope affected releases to 8.25.0 and earlier. Scoring differs between sources: VulDB assigns 5.3 under CVSS 4.0 with low confidentiality impact, whereas the independent assessment maps the same behavior to CVSS 3.1 with PR:L/UI:N and confidentiality impact High, reflecting that a readable panel file store can yield secrets. The vendor itself confirms the LFI/RCE class requires authentication.
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:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N/E:P
Network-reachable endpoint with low complexity; vendor-confirmed authentication sets PR:L; arbitrary file read yields high confidentiality but no integrity/availability impact, so C:H/I:N/A:N.
Primary rating from Vendor (VulDB).
CVSS VectorVendor: VulDB
Lifecycle Timeline
3DescriptionCVE.org
A flaw has been found in aaPanel up to 8.25.0. Impacted is the function send_file of the file BTPanel/routes/v2.py of the component Download Endpoint. Executing a manipulation of the argument filename can lead to path traversal. The attack can be executed remotely. The exploit has been published and may be used. The vendor confirms: "The reported RCE and LFI vulnerabilities require authentication."
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
Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.
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
aaPanel through 8.25.0 derives the client IP in GetClientIp (class/public/common.py) from the attacker-controllable X-Re
Unauthenticated attackers can forge unsubscribe and subscribe-confirmation JWTs against BillionMail through version 4.9
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-105174
GHSA-2mfg-9rwf-7mpr
NVD
CVE.org
EPSS
VulDB
Exploit-DB