CVE-2025-10181
📋 TL;DR
The Draft List WordPress plugin has a stored XSS vulnerability in all versions up to 2.6. Authenticated attackers with contributor-level access or higher can inject malicious scripts via the 'drafts' shortcode, which execute when users view affected pages. This affects all WordPress sites using vulnerable versions of this plugin.
💻 Affected Systems
- WordPress Draft List plugin (also called Simple Draft List)
⚠️ Manual Verification Required
This CVE does not have specific version information in our database, so automatic vulnerability detection cannot determine if your system is affected.
Why? The CVE database entry doesn't specify which versions are vulnerable (no version ranges provided by the vendor/NVD).
🔒 Custom verification scripts are available for registered users. Sign up free to download automated test scripts.
- Review the CVE details at NVD
- Check vendor security advisories for your specific version
- Test if the vulnerability is exploitable in your environment
- Consider updating to the latest version as a precaution
⚠️ Risk & Real-World Impact
Worst Case
Attackers could steal administrator credentials, deface websites, redirect users to malicious sites, or install backdoors for persistent access.
Likely Case
Attackers with contributor access inject malicious scripts to steal user session cookies or perform actions on behalf of authenticated users.
If Mitigated
With proper user access controls and content security policies, impact is limited to the specific pages containing malicious shortcodes.
🎯 Exploit Status
Exploitation requires authenticated access with at least contributor privileges. Attackers need to create or edit posts/pages with the vulnerable shortcode.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Versions after 2.6
Vendor Advisory: https://wordpress.org/plugins/simple-draft-list/
Restart Required: No
Instructions:
1. Log into WordPress admin panel. 2. Navigate to Plugins → Installed Plugins. 3. Find 'Simple Draft List' or 'Draft List'. 4. Click 'Update Now' if available. 5. If no update is available, deactivate and delete the plugin, then install the latest version from WordPress repository.
🔧 Temporary Workarounds
Remove Contributor Access
allTemporarily remove contributor-level access for untrusted users until patching is complete.
Disable Plugin
allDeactivate the Draft List plugin if functionality is not critical.
🧯 If You Can't Patch
- Implement Content Security Policy (CSP) headers to restrict script execution
- Review and audit all posts/pages created by contributors for suspicious shortcode usage
🔍 How to Verify
Check if Vulnerable:
Check WordPress admin → Plugins → Installed Plugins. Look for 'Simple Draft List' or 'Draft List' with version 2.6 or lower.
Check Version:
wp plugin list --name='simple-draft-list' --field=version (if WP-CLI is installed)
Verify Fix Applied:
After updating, verify the plugin version shows higher than 2.6 in the WordPress plugins list.
📡 Detection & Monitoring
Log Indicators:
- Unusual post/page edits by contributor-level users
- Posts containing 'drafts' shortcode with script-like attributes
Network Indicators:
- Outbound connections to unknown domains from WordPress pages
SIEM Query:
source="wordpress" AND (event="post_modified" OR event="page_modified") AND user_role="contributor" AND content CONTAINS "[drafts"
🔗 References
- https://github.com/dartiss/draft-list/blob/master/inc/create-lists.php
- https://plugins.trac.wordpress.org/browser/simple-draft-list/tags/2.6/inc/create-lists.php#L339
- https://plugins.trac.wordpress.org/changeset?sfp_email=&sfph_mail=&reponame=&old=3363488%40simple-draft-list&new=3363488%40simple-draft-list&sfp_email=&sfph_mail=
- https://wordpress.org/plugins/simple-draft-list/
- https://www.wordfence.com/threat-intel/vulnerabilities/id/12a750c6-85b6-48fc-b006-adf0121610dc?source=cve