File Manager 6.0 - 6.9 - Missing Authorization to Authenticated (Subscriber+) Arbitrary File Read and Deletion via 'cmd' Query Parameter
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
- Exploitation: none
- Automatable: no
- Technical impact: total
Summary
The File Manager plugin for WordPress is vulnerable to arbitrary file deletion due to insufficient file path validation in the connector function in all versions from 6.0 - 6.9. This makes it possible for authenticated attackers, with subscriber-level access and above, to read and delete arbitrary files on the server, which can lead to remote code execution when the right file is deleted (such as wp-config.php). The bypass is triggered by passing cmd=rm or cmf=file in the URL query string of a POST request: elFinder's bind registration reads the command exclusively from $_POST and therefore never registers the rm.pre permission handler, while the dispatcher reads from the merged $_GET+$_POST superglobal and executes the rm or file command unchecked against a volume that defaults to ABSPATH.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: total
- Record last updated
Affected versions
- bitpressadmin File Manager
From 6.0 · through 6.9
References 9
plugins.trac.wordpress.org
- browser/file-manager/tags/6.9/backend/app/Http/Controllers/FileManagerController.php#L34
- browser/file-manager/tags/6.9/vendor/studio-42/elfinder/php/elFinder.class.php#L802
- browser/file-manager/tags/6.9/vendor/studio-42/elfinder/php/elFinderConnector.class.php#L320
- browser/file-manager/tags/6.9/backend/app/Http/Controllers/FileManagerController.php#L32
- browser/file-manager/tags/6.9/backend/app/Providers/AccessControlProvider.php#L121
- browser/file-manager/tags/6.9/backend/hooks/ajax.php#L10
- changeset?old_path=%2Ffile-manager/tags/6.9&new_path=%2Ffile-manager/tags/6.9.1
- changeset/3632660/file-manager/trunk/backend/app/Http/Controllers/FileManagerController.php