Kirki <= 6.0.13 - Authenticated (Editor+) Path Traversal to Arbitrary File Write (Zip Slip)
- 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: partial
Summary
The Kirki – Freeform Page Builder, Website Builder & Customizer plugin for WordPress is vulnerable to Path Traversal (Zip Slip) in all versions up to, and including, 6.0.13 via the extract_zip_file function. This makes it possible for authenticated attackers, with custom-level access and above, to write arbitrary files on the server, which can allow for remote code execution. The install_app, update_app, and get_kirki_template_from_zip code paths accept a user-supplied app src value to construct the download URL, and no sanitization is applied to prevent a crafted ZIP from being fetched and extracted with path-traversing entry names that escape the intended destination directory.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: partial
- Record last updated
Affected versions
- themeum Kirki – Freeform Page Builder, Website Builder & Customizer
through 6.0.13
References 14
plugins.trac.wordpress.org
- browser/kirki/tags/6.0.13/app/Supports/FileHandler.php#L90
- browser/kirki/tags/6.0.13/app/Services/AppsService.php#L113
- browser/kirki/tags/6.0.13/app/Services/AppsService.php#L186
- browser/kirki/tags/6.0.13/app/Http/Controllers/Api/AppsController.php#L27
- browser/kirki/tags/6.0.13/routes/api.php#L77
- browser/kirki/tags/6.0.13/includes/Ajax/Apps.php#L176
- browser/kirki/tags/6.0.12/app/Supports/FileHandler.php#L90
- browser/kirki/tags/6.0.12/app/Services/AppsService.php#L113
- browser/kirki/tags/6.0.12/app/Services/AppsService.php#L186
- browser/kirki/tags/6.0.12/app/Http/Controllers/Api/AppsController.php#L27
- browser/kirki/tags/6.0.12/routes/api.php#L77
- browser/kirki/tags/6.0.12/includes/Ajax/Apps.php#L176
- changeset?reponame=&old=3617070%40kirki&new=3617070%40kirki