{"id":"CVE-2026-113506","kind":"vulnerability","aliases":["CVE-2026-113506"],"related":[],"title":"aaPanel: File Manager command injection lets logged-in users run OS commands","description":"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.\"","summary":"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.","severity":"critical","cvss":9.9,"epss":null,"exploited":false,"exploited_at":null,"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"],"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.","status":"open","published_at":"2026-10-20T18:17:18+00:00","first_seen_at":"2026-10-23T21:57:21+00:00","triaged_at":"2026-10-23T22:39:25+00:00","updated_at":"2026-10-23T23:19:15+00:00","category":"runtime","confidence":0.6,"triage":{"at":"2026-10-23T22:39:25Z","model":"claude-haiku-5-5","output":{"fix":"unknown","reach":"internet","title":"aaPanel: File Manager command injection lets logged-in users run OS commands","impact":"high","summary":"aaPanel up to 8.25.0 passes attacker-controlled sfile, dfile, access or user arguments into a shell in the File Manager, so OS commands can be injected. The vendor says exploitation requires an authenticated session, and a public exploit has been disclosed.","category":"runtime","who_cares":["aapanel","self-hosted","linux-servers"],"confidence":0.7,"needs_auth":"yes","worst_case":"Attacker with panel login runs OS commands as the panel user","analyst_note":"Find the fixed aaPanel release after 8.25.0 and a check for the vulnerable ExecShell code path in class/public/common.py; sources give no fix or version check.","how_to_check":"unknown","needs_analyst":true,"not_affected_if":["auth-required","not-aapanel"],"user_interaction":"no","needs_special_setup":"no","severity_if_unknown":"critical"},"cost_usd":0.000479,"input_tokens":2962,"output_tokens":365,"severity_before":"critical"},"analyst_status":"done","analyst_note":"Find the fixed aaPanel release after 8.25.0 and a check for the vulnerable ExecShell code path in class/public/common.py; sources give no fix or version check.","search":"'-113506':16A,19A '-2026':15A,18A '8.0':30B '8.25.0':32B,90C 'aapanel':1A,20A,21B,29B,87C 'access':36B 'affect':92C 'argument':39B,111C 'attack':119C 'authent':75B,149C 'bug':73B 'carri':124C 'class/public/common.py':46B,101C 'command':4A,13A,60B,116C 'compon':104C 'confirm':141C 'cve':14A,17A 'dfile':35B 'disclos':131C 'document':80B 'element':93C 'execshel':45B,97C 'exploit':128C 'file':2A,42B,100C,105C 'fix':77B 'found':85C 'function':96C 'host':28B 'inject':5A,117C 'jdexploit':68B 'lead':113C 'let':6A 'lfi':146C 'linux':23B 'linux-serv':22B 'log':8A,53B 'logged-in':7A,52B 'manag':3A,43B,106C 'manipul':108C 'may':136C 'need':74B 'neutralis':48B 'os':12A,59B,115C 'panel':55B 'pass':33B 'poc':65B 'possibl':121C 'public':67B,134C 'rce':144C 'releas':78B 'remot':126C 'report':61B,143C 'requir':148C 'root':63B 'run':11A,58B 'runtim':25B 'say':71B 'self':27B 'self-host':26B 'server':24B 'sfile':34B 'sfile/dfile/access/user':112C 'use':138C 'user':10A,38B,56B 'vendor':70B,140C 'vulner':82C,147C 'without':47B","nicknames":[],"mitigations":[],"who_affected":null,"tier":"B","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-20T18:17:18+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:P/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","cvss_by":"cna@vuldb.com","poc_count":1,"sources":[{"source":"nvd","external_id":"CVE-2026-113506","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-113506","severity":null,"published_at":"2026-10-20T18:17:18+00:00","modified_at":"2026-10-20T19:27:34+00:00","first_seen_at":"2026-10-23T21:57:21+00:00","fetched_at":"2026-10-23T22:28:58+00:00","note":null},{"source":"analyst","external_id":"CVE-2026-113506:415","url":null,"severity":null,"published_at":"2026-10-23T23:19:15+00:00","modified_at":"2026-10-23T23:19:15+00:00","first_seen_at":"2026-10-23T23:19:15+00:00","fetched_at":"2026-10-23T23:19:15+00:00","note":"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":[{"id":1885,"url":"https://vuldb.com/vuln/422748","title":"VulDB VDB-422748: aaPanel up to 8.25.0 ExecShell os command injection","kind":"advisory","source":"analyst","text":null,"published_at":null,"relation":"advisory","confidence":null,"note":null},{"id":1886,"url":"https://vulners.com/githubexploit/6EACA4DE-4075-5130-A910-A4D2EACC73B1","title":"aapanel-cve-2026 (JdExploit) RCE/LFI/IP bypass PoC archive, aaPanel v8.22.0","kind":"poc","source":"analyst","text":null,"published_at":null,"relation":"poc","confidence":null,"note":null},{"id":1887,"url":"https://www.aapanel.com/forum/t/releases","title":"aaPanel official releases forum (8.25.0 beta, 8.0.7)","kind":"vendor","source":"analyst","text":null,"published_at":null,"relation":"mentions","confidence":null,"note":null}],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}