Simple File List Plugin Unauthenticated File Modification / Path Traversal — CVE-2026-11912
by Polosss (PoC/lab writeup); vulnerability discovered by Chloe Chamberland (Wordfence) · 2026-07-05
- Severity
- High
- CVE
- CVE-2026-11912
- Category
- web
- Affected product
- Simple File List WordPress plugin
- Affected versions
- <= 6.3.7 (patched in 6.3.8)
- Disclosed
- 2026-07-05
- Patch status
- patched
Tags
Archive entry
intelseclab/poc-archiveMetadata
| Field | Value |
|---|---|
| Date Added | 2026-07-05 |
| Last Updated | 2026-06 |
| Author / Researcher | Polosss (PoC/lab writeup); vulnerability discovered by Chloe Chamberland (Wordfence) |
| CVE / Advisory | CVE-2026-11912 |
| Category | web |
| Severity | High |
| CVSS Score | 7.5 (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N) |
| Status | PoC |
| Tags | wordpress, plugin, path-traversal, missing-authorization, unauthenticated, file-deletion, ajax, nonce |
| Related | N/A |
Affected Target
| Field | Value |
|---|---|
| Software / System | Simple File List WordPress plugin |
| Versions Affected | <= 6.3.7 (patched in 6.3.8) |
| Language / Platform | Python 3 (requests-based HTTP PoC) targeting WordPress admin-ajax.php |
| Authentication Required | No |
| Network Access Required | Yes |
Summary
The Simple File List plugin registers its simplefilelist_edit_job AJAX action on both the wp_ajax_ and wp_ajax_nopriv_ hooks, meaning it is reachable by unauthenticated visitors. The authorization check inside eeSFL_FileEditor() relies on is_admin(), which always returns FALSE for AJAX requests, so the intended AllowFrontManage restriction is short-circuited before it can deny the request. Compounding this, the security nonce (eeSFL_ActionNonce) required by the endpoint is embedded directly in the front-end page source, so an unauthenticated attacker can simply scrape it. Because the eeFileName parameter is not validated against path traversal, an attacker can supply values like ../../wp-config.php to delete or rename arbitrary files outside the intended file-list directory. The PoC demonstrates nonce extraction followed by unauthenticated file delete, rename, and path-traversal-based deletion of wp-config.php, which was shown to completely break the target site.
Vulnerability Details
Root Cause
Missing authorization: the AJAX handler is registered for unauthenticated (nopriv) access, and its authorization check depends on is_admin(), which is always false in an AJAX context — combined with a front-end-exposed nonce and an unsanitized eeFileName parameter that permits path traversal.
Attack Vector
- Request the public file-list page and scrape the
eeSFL_ActionNoncevalue embedded in the HTML source. - POST to
/wp-admin/admin-ajax.phpwithaction=simplefilelist_edit_job, the scraped nonce, andeeFileAction=Delete/Editto delete or rename a file within the plugin’s managed directory. - Supply a path-traversal value in
eeFileName(e.g.../../wp-config.php) to escape the intended directory and target arbitrary files on the server. - Observe the deletion/modification of the targeted file (e.g.
wp-config.php), which breaks the WordPress installation.
Impact
Unauthenticated attackers can delete or rename arbitrary files on the server, including critical files like wp-config.php, resulting in complete site compromise/denial of service and potential further exploitation depending on which files are targeted.
Environment / Lab Setup
Target: WordPress + Simple File List <= 6.3.7 (tested against a DDEV lab: poloss-lab.ddev.site, PHP 8.4)
Attacker: Python 3, requests, urllib3 — network access to the target WordPress site
Proof of Concept
PoC Script
See
CVE-2026-11912.pyin this folder.
| |
The script extracts the eeSFL_ActionNonce from the public file-list page, then issues unauthenticated admin-ajax.php requests against the simplefilelist_edit_job action to delete/rename files and demonstrate path traversal (e.g. targeting ../../wp-config.php) to confirm arbitrary file modification outside the plugin’s managed directory.
Detection & Indicators of Compromise
Signs of compromise:
- Unexpected deletion or renaming of files managed by Simple File List
- Missing or corrupted
wp-config.php/ site suddenly showing a database-connection or fatal error admin-ajax.phpaccess log entries withaction=simplefilelist_edit_jobfrom anonymous/unauthenticated sessions
Remediation
| Action | Detail |
|---|---|
| Primary fix | Update Simple File List to version 6.3.8 or later |
| Interim mitigation | Disable the plugin or remove pages containing the [eeSFL] shortcode until patched; add WAF rules blocking action=simplefilelist_edit_job requests to admin-ajax.php |
References
Notes
Mirrored from https://github.com/Polosss/By-Poloss..-..CVE-2026-11912 on 2026-07-05.
| |