Pheditor: Hardcoded default password 'admin' with no forced change enables full application compromise
Published Jul 27, 2026 · Updated Oct 23, 2026 · Also known as GHSA-p4h7-p9rj-2pq2
Original summary
Normalized public record · Updated Oct 23, 2026
Pheditor: Hardcoded default password 'admin' with no forced change enables full application compromise
Publisher and source text is retained separately from QFinch interpretation.
QFinch assessment
Pheditor ships with a hardcoded default password admin (SHA-512 hash stored at pheditor.php:11). There is no mechanism to force a password change on first login. Any deployment using the default credentials grants an attacker full access to the file editor, file upload, and terminal features, enabling arbitrary file read/write and remote code execution.
Potential impact
Use of Hard-coded Credentials (CWE-798). The default password admin is publicly documented in the source code, trivially guessable, and there is no mechanism to force a password change on first login. This effectively grants unauthenticated remote attackers full administrator access to the application. Attacker privileges: Unauthenticated remote attacker (PR:N). Security boundary crossed: Unauthenticated → fully authenticated administrator. Confidentiality impact: High — read all files within MAINDIR and beyond (via terminal). Integrity impact: High — write/delete files, upload webshells, modify application code, execute arbitrary commands. Availability impact: High — delete files and directories, disrupt services. Suggested remediation: 1. Remove the default password — require user to set a password during installation. 2. Add a setup wizard that forces password creation on first access. 3. Add a forced password change on first login with default credentials. 4. Use passwordhash() / passwordverify() with PASSWORDBCRYPT instead of raw SHA-512.
Technical context
Tested repository: https://github.com/pheditor/pheditor Tested commit: e538f05b6faec99e5b23726bc9c17d6b57774297 (current HEAD on main) Affected version: All versions of Pheditor The password is hardcoded at pheditor.php:11: This is the SHA-512 hash of the string admin: The application displays a warning banner at pheditor.php:1956-1958 when the default password is in use, but this is only visual — there is no forced password change, no expiry, no lockout, and no setup wizard. Many deployments run with the default indefinitely. The password hash is stored as unsalted SHA-512 in the source code. The password change feature (lines 363-391) writes the new hash directly into the PHP source file, meaning anyone with read access to the source can extract it. Combined impact: With the default password, an unauthenticated attacker can authenticate and exploit the terminal RCE and file upload vulnerabilities for immediate server compromise.
Evidence: public source recordsAffected products
| Affected package, product or range | Fix status |
|---|---|
| Consult the referenced vendor advisory for affected versions. | Consult source advisory |
Matching a version is only one part of assessing exposure. QFinch has not assessed your environment on this public page.
Remediation
Apply the vendor-supported fixed release or mitigation, then verify the affected component is no longer reachable.
- Confirm the affected product and reachable code path exist in your environment.
- Apply the vendor-supported patch or mitigation from the primary advisory.
- Rescan the exact deployed revision and retain verification evidence.
Evidence coverage
- SSVC priority
- MEDIUM
- Confidence
- 20%
- Aliases
- GHSA-p4h7-p9rj-2pq2
Scores appear only when corresponding evidence exists. Missing data is never interpreted as zero risk.
Sources and record history
Record history
Published Jul 27, 2026 · Last refreshed Oct 23, 2026