CVE-2026-15012: Demi (WordPress plugin) · Information Exposure
Affects Demi (WordPress plugin)Source CVE Database V5
Not known to be exploited · CVSS 5.3 Medium.
Data as of 27 Oct 2026, 17:11 UTC
- EPSS
- 0.5% chance of exploitation in 30 days – higher than 45% of CVEsExploit Prediction Scoring System: the likelihood attackers will use this flaw soon.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:NExploitation evidence
Disclosed: evidence found.
CVE published 28 Jul 2026
Detectable: no evidence on record.
No public nuclei template indexed
Weaponised: no evidence on record.
No public exploit code indexed in Metasploit or Exploit-DB
Exploited in the wildExploited: no evidence on record.
Not in CISA KEV and no source reports exploitation
Observed by OffSeq MirageSeen by Mirage: no evidence on record.
No attack traffic recorded by OffSeq Mirage sensors
A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 26 Oct 2026.
What to do
Affected software
| Product | Affected | Fixed in |
|---|---|---|
| deveaselDemi – One Click Demo Import, Backup & Site Migration | Affected
| Fixed in– |
AI-suggested
Until a fix is available, restrict access to the wp-content/uploads/demi-backup-state/ directory by implementing appropriate HTTP access controls or disabling the restore functionality if possible. Monitor for active restore operations and limit exposure of sensitive files in public directories.
Description
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.
References
- wordfence.com/threat-intel/vulnerabilities/id/61ee1857-aa85-4d37-a347-a1f59c95cbff?source=cve (opens in a new tab)
- plugins.trac.wordpress.org/browser/demi-backup-migration/trunk/classes/Import/Manager.php (opens in a new tab)
- plugins.trac.wordpress.org/browser/demi-backup-migration/trunk/classes/Import/Manager.php (opens in a new tab)
- plugins.trac.wordpress.org/browser/demi-backup-migration/trunk/classes/Import/Manager.php (opens in a new tab)
- plugins.trac.wordpress.org/browser/demi-backup-migration/trunk/classes/Import/Tasks/RestoreFiles.php (opens in a new tab)
- plugins.trac.wordpress.org/browser/demi-backup-migration/trunk/includes/helper-functions.php (opens in a new tab)
- plugins.trac.wordpress.org/browser/demi-backup-migration/tags/0.0.6/classes/Import/Manager.php (opens in a new tab)
- plugins.trac.wordpress.org/browser/demi-backup-migration/tags/0.0.6/classes/Import/Manager.php (opens in a new tab)
- plugins.trac.wordpress.org/browser/demi-backup-migration/tags/0.0.6/classes/Import/Manager.php (opens in a new tab)
- plugins.trac.wordpress.org/browser/demi-backup-migration/tags/0.0.6/classes/Import/Tasks/RestoreFiles.php (opens in a new tab)
- plugins.trac.wordpress.org/browser/demi-backup-migration/tags/0.0.6/includes/helper-functions.php (opens in a new tab)
- plugins.trac.wordpress.org/changeset?reponame=&old=3616690%40demi-backup-migration&new=3616690%40demi-backup-migration (opens in a new tab)