---
id: "CVE-2026-113506"
kind: "vulnerability"
aliases: ["CVE-2026-113506"]
title: "aaPanel: File Manager command injection lets logged-in users run OS commands"
severity: "critical"
cvss: 9.9
epss: null
exploited: false
status: "open"
category: "runtime"
products: [{"name": "aaPanel", "fixed": [], "affected": ">= 8.0, <= 8.25.0", "ecosystem": "vendor"}]
ecosystems: []
tags: ["aapanel", "linux-servers", "runtime", "self-hosted"]
not_affected_if: ["auth-required", "not-aapanel", "panel-not-internet-exposed"]
published_at: "2026-10-20T18:17:18+00:00"
first_seen_at: "2026-10-23T21:57:21+00:00"
updated_at: "2026-10-23T23:19:15+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-113506", "first_seen_at": "2026-10-23T21:57:21+00:00"}, {"source": "analyst", "url": null, "first_seen_at": "2026-10-23T23:19:15+00:00"}]
---

# aaPanel: File Manager command injection lets logged-in users run OS commands

aaPanel 8.0 through 8.25.0 passes sfile, dfile, access or user arguments from the File Manager into ExecShell (class/public/common.py) without neutralising them, so a logged-in panel user can run OS commands, reportedly as root. A PoC is public (JdExploit). The vendor says the bug needs authentication. No fixed release is documented.

_Summary, check and fix written by a model from the sources; labelled as such._

## Affected

- vendor:aaPanel affected >= 8.0, <= 8.25.0 fixed ?

## How to check

Read the panel version on the aaPanel Home page. Any version up to 8.25.0 is in the reported range. Also check whether the panel port is reachable from the internet and who holds panel accounts, since exploitation needs a valid login. The vulnerable code is in class/public/common.py under the panel install directory (normally /www/server/panel).

## Fix

unknown: no fixed aaPanel release is published. Until one is, restrict panel access (IP allowlist or VPN, not the public internet), remove unneeded panel users, use strong credentials, and watch the aaPanel forum releases page for a fix. Check the changelog before assuming a newer build fixes it.

## Timeline

- 2026-10-23T21:57:21+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-113506
- 2026-10-23T23:19:15+00:00 analyst — VulDB (VDB-422748) and aggregators: affects aaPanel 8.0 to 8.25.0, PoC public (JdExploit, tested on v8.22.0 commit 4af59b2). No fixed version published by the vendor as of 2026-10-23; releases forum shows 8.0.7 (13 Oct) and 8.25.0 beta (9 Oct), neither stated to fix this. Vendor says only that the RCE/LFI reports need authentication. X posts about aaPanel concern the unrelated PHP2Shell PHP CVEs, so none saved. Sibling CVEs: CVE-2026-113505 (LFI), CVE-2026-113507 (X-Real-Ip bypass; vendor says already fixed).

## Documents

- [advisory] VulDB VDB-422748: aaPanel up to 8.25.0 ExecShell os command injection https://vuldb.com/vuln/422748
- [mentions] aaPanel official releases forum (8.25.0 beta, 8.0.7) https://www.aapanel.com/forum/t/releases
- [poc] aapanel-cve-2026 (JdExploit) RCE/LFI/IP bypass PoC archive, aaPanel v8.22.0 https://vulners.com/githubexploit/6EACA4DE-4075-5130-A910-A4D2EACC73B1

## From the sources

A vulnerability has been found in aaPanel up to 8.25.0. The affected element is the function ExecShell of the file class/public/common.py of the component File Manager. The manipulation of the argument sfile/dfile/access/user leads to os command injection. The attack is possible to be carried out remotely. The exploit has been disclosed to the public and may be used. The vendor confirms: "The reported RCE and LFI vulnerabilities require authentication."

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
