
CVE-2026-55579 – Unauthenticated RCE in Pheditor via hardcoded default password "admin". Full Python exploit with file upload & terminal execution. No dependencies.
TL;DR: Pheditor (all versions) ships with a hardcoded default administrator password (
admin) embedded in its source code. There is no forced password change on first login, only a visual warning. Any unauthenticated attacker can log in as admin and abuse the built‑in terminal panel (action=terminal) to execute arbitrary OS commands with the web server's privileges. Combined with file upload capabilities, this yields unauthenticated Remote Code Execution (RCE).
The vulnerability stems from a hardcoded SHA‑512 hash of the password admin inside pheditor.php (line 11):
define('PASSWORD', 'c7ad44cbad762a5da0a452f9e854fdc1e0e7a52a38015f23f3eab1d80b931dd472634dfac71cd34ebc35d16ab7fb8a90c81f975113d6c7538dc69dd8de9077ec');
This hash corresponds to:
echo -n 'admin' | sha512sum
Why this is a game over:
pheditor.php).admin/admin, an attacker can log in and gain full access to:
action=terminal)action=upload)action=open/action=save)There is no rate‑limiting, no lockout, and no additional authentication factor.
The attack is extremely simple and requires zero guessing:
POST request to pheditor.php with pheditor_password=admin. The server sets a session cookie.token JavaScript variable.POST request with:
action=terminaltoken=<extracted>command=<OS command>dir= (optional)<pre> tags and can be parsed cleanly.Alternatively, the attacker can upload a web shell or overwrite application files.
Clone the official repository and start a local server:
git clone https://github.com/pheditor/pheditor.git /tmp/pheditor
cd /tmp/pheditor
php -S localhost:8080 pheditor.php &
The provided Python exploit relies only on the Python standard library (no external dependencies). It features argparse‑based CLI, advanced error handling, verbose mode, and timeout control.
python3 exploit.py http://localhost:8080/pheditor.php "id; hostname; whoami"
[*] Logging in with password: admin
[+] Login successful
[*] Extracting CSRF token...
[+] Token: a1b2c3d4e5f6...
[*] Executing: id; hostname; whoami
==================================================
Command Output:
==================================================
uid=33(www-data) gid=33(www-data) groups=33(www-data)
ubuntu
www-data
==================================================
Successful exploitation grants the attacker:
root), the attacker gains full control of the host.Given that Pheditor is often used in development environments or as a lightweight file manager, attackers can easily find and exploit it to gain initial footholds.
pheditor_password=admin).Monitor your environment for indicators of compromise:
pheditor.php with pheditor_password=admin or action=terminal.sh, bash, nc, curl, or wget.For a deeper dive into the exploit chain and additional payloads, refer to ANALYSIS.md.
Disclaimer: This repository contains a Proof of Concept (PoC) intended strictly for defensive, educational, and authorized security testing purposes. Do not use this code against systems you do not own or have explicit written permission to test. The authors assume no liability for misuse.
| Attribute | Details |
|---|
| CVE Identifier | CVE-2026-55579 |
| Affected Software | Pheditor (all versions up to and including current HEAD) |
| Fixed Version | None yet (vendor patch not released; workaround required) |
| Vulnerability Class | CWE-798: Use of Hard-coded Credentials |
| CVSS v3.1 Score | 9.8 (Critical) CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| Authentication | None – default credentials are publicly known |
| Verification | Confirmed against a fresh installation of Pheditor |