CSRF to RCE in WordPress Theme Editor plugin
CVE-2025-9890 affects the Theme Editor plugin for WordPress in all versions up to and including 3.0. The vulnerability is a Cross-Site Request Forgery issue caused by missing or incorrect nonce validation on the 'theme_editor_theme' page. Because the affected action does not properly verify request authenticity, an attacker can induce a privileged WordPress administrator to submit a forged request. In the context of a theme editor component, successful exploitation can result in unauthorized modification of theme files, leading to remote code execution on the WordPress server.
What it means and what to do now: patch path, interim mitigations, and the assume-compromise checklist.
What an attacker gets, and what they’ve been doing with it.
Successful exploitation allows an unauthenticated attacker to leverage an administrator's authenticated session to perform unauthorized actions in the Theme Editor plugin. The stated impact is remote code execution, which can enable arbitrary PHP code injection or modification of theme files, resulting in full compromise of the WordPress application context. Depending on server configuration, this may permit website defacement, malware deployment, persistence, credential theft, and further pivoting from the compromised host.
If you can’t patch tonight, do this now.
Restrict administrator exposure to untrusted links and web content until the plugin is patched. Disable the Theme Editor plugin or any file-editing functionality it exposes if not strictly required. Apply least-privilege administration practices, use separate low-privilege accounts for routine browsing, and consider additional hardening such as WAF rules or administrative access restrictions to reduce the likelihood of successful CSRF delivery. Logging and file integrity monitoring for theme file changes can help detect exploitation.
Patch, then assume compromise.
Update the Theme Editor plugin to a version newer than 3.0 if a vendor fix is available. If no patched release is yet available, disable or remove the plugin until a fix is published. The underlying issue should be remediated by implementing proper nonce validation and capability checks on requests to the 'theme_editor_theme' page, ensuring state-changing actions cannot be performed via forged cross-site requests.
No public exploits tracked yet. Mallory keeps watching.
3 sources tracked across advisories, community write-ups, and news. New activity surfaces here as Mallory finds it.