Demi <= 0.0.8 - Unauthenticated Information Exposure to Arbitrary Directory Copy
- 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: yes
- Technical impact: partial
Summary
The Demi – One Click Demo Import, WP Backup & Site Migration plugin for WordPress is vulnerable to Arbitrary Directory Copy in all versions up to, and including, 0.0.8 via the handle_restore_step function. This is due to missing HTTP access controls on the wp-content/uploads/demi-backup-state/ directory, which exposes the cryptographic restore key used to both authenticate the unauthenticated AJAX handler and forge signed restore-state envelopes. This makes it possible for unauthenticated attackers to copy arbitrary files to attacker-controlled destinations on the server. An active restore operation must have been initiated, which writes the .restore_key and .restore_step_token files to the public upload directory, before the exposed secrets can be harvested and chained to achieve unauthenticated arbitrary file copy.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: yes · Technical impact: partial
- Record last updated
Affected versions
- deveasel Demi – One Click Demo Import, Backup & Site Migration
through 0.0.8
References 12
plugins.trac.wordpress.org
- browser/demi-backup-migration/trunk/classes/Import/Manager.php#L50
- browser/demi-backup-migration/trunk/classes/Import/Manager.php#L460
- browser/demi-backup-migration/trunk/classes/Import/Manager.php#L287
- browser/demi-backup-migration/trunk/classes/Import/Tasks/RestoreFiles.php#L168
- browser/demi-backup-migration/trunk/includes/helper-functions.php#L55
- browser/demi-backup-migration/tags/0.0.6/classes/Import/Manager.php#L460
- browser/demi-backup-migration/tags/0.0.6/classes/Import/Manager.php#L287
- browser/demi-backup-migration/tags/0.0.6/classes/Import/Manager.php#L50
- browser/demi-backup-migration/tags/0.0.6/classes/Import/Tasks/RestoreFiles.php#L168
- browser/demi-backup-migration/tags/0.0.6/includes/helper-functions.php#L55
- changeset?reponame=&old=3616690%40demi-backup-migration&new=3616690%40demi-backup-migration