Severity by source
AV:N/AC:H/PR:H/UI:N/S:C/C:L/I:L/A:N
Primary rating from NVD · only source for this CVE.
CVSS VectorNVD
CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:C/C:L/I:L/A:N
Lifecycle Timeline
1DescriptionCVE.org
The Anomify AI - Anomaly Detection and Alerting plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'anomify_api_key' parameter in versions up to and including 0.3.6. This is due to insufficient input sanitization and missing output escaping: the plugin applies sanitize_text_field() to the Metric Data Key input before saving it via update_option(), but sanitize_text_field() strips HTML tags without encoding double-quote characters, and the value is then echoed directly into an HTML attribute context (value="...") without esc_attr(). This makes it possible for authenticated attackers with administrator-level access to inject arbitrary web scripts that execute whenever a user visits the plugin's settings page.
AnalysisAI
Stored Cross-Site Scripting in the Anomify AI WordPress plugin (versions ≤ 0.3.6) allows authenticated administrators to persist malicious scripts in the plugin's settings that execute in any user's browser upon visiting the settings page. The flaw exists because the plugin applies sanitize_text_field() to the anomify_api_key input - a function that strips HTML tags but does not encode double-quote characters - then echoes the stored value directly into an HTML attribute context (value="...") without the appropriate esc_attr() call. No public exploit code has been identified at time of analysis, and CISA KEV does not list this CVE; the CVSS score of 4.4 reflects the high privilege bar and high complexity required to exploit.
Technical ContextAI
The vulnerability resides in the Anomify AI - Anomaly Detection and Alerting WordPress plugin by simonholliday (CPE: cpe:2.3:a:simonholliday:anomify_ai_-_anomaly_detection_and_alerting:*:*:*:*:*:*:*:*). CWE-79 (Improper Neutralization of Input During Web Page Generation) describes the root cause class: output is placed into an HTML attribute context without attribute-safe encoding. Specifically, admin_options.php at line 43 passes the anomify_api_key value through sanitize_text_field() before saving it with update_option() - a correct but insufficient sanitization step. WordPress's sanitize_text_field() is designed to remove HTML tags and extra whitespace; it does not percent-encode or HTML-entity-encode double-quote characters. When Admin.php later renders the stored value inside a value="..." HTML attribute (confirmed at Admin.php:L32 and Config.php:L152 per the plugin trac references), an attacker-supplied double quote can break out of the attribute, injecting arbitrary event handlers or script elements that execute in the browser. This is a classic context-mismatch sanitization bug: using a sanitizer appropriate for database storage but not for HTML attribute output.
RemediationAI
No vendor-released patched version has been identified in the available input data at time of analysis; the WordPress plugin trac references point to version 0.3.6 and trunk without specifying a fixed release. Site operators should monitor the Wordfence advisory (https://www.wordfence.com/threat-intel/vulnerabilities/id/4036057c-0c43-4d9c-97db-4861d91a4daa) and the WordPress plugin repository for a patched release. The correct developer fix is to replace the unescaped echo of the stored value with a call to esc_attr() at the point of HTML attribute output in Admin.php and admin_options.php, which will encode double quotes and other attribute-breaking characters. As a compensating control, site administrators should restrict access to the WordPress admin panel to trusted IP ranges and enforce multi-factor authentication on all administrator accounts, which raises the bar for an attacker to reach the vulnerable parameter. Disabling the Anomify AI plugin entirely eliminates the attack surface with no WordPress-core side effects. Consider auditing the WordPress administrator account roster and removing any unnecessary or shared admin accounts to limit the pool of principals who could trigger this flaw.
The isMail transport in PHPMailer before 5.2.20 might allow remote attackers to pass extra parameters to the mail comman
The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1
The Hash Form - Drag & Drop Form Builder plugin for WordPress is vulnerable to arbitrary file uploads due to missing fil
The GiveWP - Donation Plugin and Fundraising Platform plugin for WordPress is vulnerable to PHP Object Injection in all
The Simple File List plugin for WordPress through version 4.2.2 contains an unauthenticated remote code execution vulner
The AI Engine WordPress plugin through version 3.1.3 exposes Bearer Token values through the /mcp/v1/ REST API endpoint
The Ninja Forms plugin before 2.9.42.1 for WordPress allows remote attackers to conduct PHP object injection attacks via
The Business Directory Plugin - Easy Listing Directories for WordPress plugin for WordPress is vulnerable to time-based
SQL injection in the NotificationX WordPress plugin (versions up to and including 2.8.2) allows unauthenticated remote a
The POST SMTP Mailer - Email log, Delivery Failure Notifications and Best Mail SMTP for WordPress plugin for WordPress i
The MasterStudy LMS WordPress Plugin - for Online Courses and Education plugin for WordPress is vulnerable to union base
The Country State City Dropdown CF7 plugin for WordPress is vulnerable to SQL Injection via the ‘cnt’ and 'sid' paramete
Same weakness CWE-79 – Cross-site Scripting (XSS)
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-31022
GHSA-58gg-mqhx-3cgq