Severity by source
AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N
Stored XSS payload execution requires a victim to visit the page (UI:R); PR:L reflects mandatory Contributor authentication; S:C captures cross-browser scope change.
Primary rating from Vendor (wordfence).
CVSS VectorVendor: wordfence
Lifecycle Timeline
2DescriptionCVE.org
The Animation Addons for Elementor plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'weather_style' and 'move_direction' parameters of the Weather widget in all versions up to, and including, 2.6.3. This is due to insufficient output escaping in the Weather widget's render() function at widgets/weather.php:1246, where both settings values are placed into an HTML class attribute without esc_attr(). Elementor does not server-side validate widget SELECT control values against allowed options on save, so an authenticated attacker with Contributor-level access or above can submit a crafted save_builder AJAX request storing arbitrary values in the _elementor_data post meta. The stored payload renders unescaped on every frontend visit to the affected page (the Weather widget requires an OpenWeatherMap API key to reach the vulnerable output, which is the normal operational state for sites using this widget).
AnalysisAI
Stored Cross-Site Scripting in the Animation Addons for Elementor WordPress plugin (all versions through 2.6.3) enables authenticated attackers with Contributor-level access to permanently inject arbitrary JavaScript into pages using the Weather widget. The payload renders unescaped for every subsequent visitor, enabling session hijacking, credential theft, or admin-context privilege escalation without further attacker interaction. No CISA KEV listing and no public exploit code have been identified at time of analysis, but the low attack complexity combined with scope change to victims' browsers makes this a credible risk for multi-author WordPress deployments running this plugin with the Weather widget actively configured.
Technical ContextAI
The vulnerability exists within the Animation Addons for Elementor WordPress plugin's Weather widget, specifically in the render() function at widgets/weather.php:1246. The root cause (CWE-79) is a missing call to WordPress's esc_attr() function before the weather_style and move_direction settings values are interpolated directly into an HTML class attribute in the rendered output. Elementor's widget framework presents these controls as SELECT dropdowns in the page builder UI, but critically does not perform server-side validation of submitted values against the allowed option set during the save_builder AJAX action. This architectural gap in Elementor's data handling allows a contributor-level user to bypass the client-side UI constraint entirely by crafting a raw AJAX POST request with arbitrary parameter values. Those values are then persisted to the _elementor_data post meta field and echoed verbatim on every frontend page load. The Weather widget's vulnerable code path is reached only when an OpenWeatherMap API key is configured, which is the standard operational state for any site actually using the widget's core functionality.
RemediationAI
Update Animation Addons for Elementor to version 2.6.4 or later, which applies proper output escaping (esc_attr()) to the weather_style and move_direction parameters in the Weather widget's render() function; the exact changeset is available at https://plugins.trac.wordpress.org/changeset?old_path=/animation-addons-for-elementor/tags/2.6.3&new_path=/animation-addons-for-elementor/tags/2.6.4. If an immediate update is not feasible, a targeted compensating control is to revoke Contributor-level (and above) access for any untrusted users on affected WordPress sites, preventing submission of crafted save_builder AJAX requests - note this disrupts legitimate content workflows and is not a permanent fix. Alternatively, removing the Weather widget from all published pages eliminates the vulnerable render path entirely while the plugin remains active, though injected payloads already stored in _elementor_data post meta should be audited and cleared. Sites that have not configured an OpenWeatherMap API key in the Weather widget settings do not reach the vulnerable output in normal operation, providing partial de facto protection, but this should not substitute for patching since the payload can still be stored in anticipation of future API key configuration.
In PHP versions 7.1.x below 7.1.33, 7.2.x below 7.2.24 and 7.3.x below 7.3.11 in certain configurations of FPM setup it
sapi/cgi/cgi_main.c in PHP before 5.3.12 and 5.4.x before 5.4.2, when configured as a CGI script (aka php-cgi), does not
(1) boardData102.php, (2) boardData103.php, (3) boardDataJP.php, (4) boardDataNA.php, and (5) boardDataWW.php in Netgear
The '/common/download_agent_installer.php' script in the Quest KACE System Management Appliance 8.0.318 is accessible by
ProjectSend versions prior to r1720 are affected by an improper authentication vulnerability. Rated critical severity (C
Roundcube Webmail contains a critical PHP object deserialization vulnerability (CVE-2025-49113, CVSS 9.9) that allows au
Util/PHP/eval-stdin.php in PHPUnit before 4.8.28 and 5.x before 5.6.3 allows remote attackers to execute arbitrary PHP c
Palo Alto Networks PAN-OS management web interface contains an authentication bypass allowing unauthenticated attackers
Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re
Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re
The get_referers function in /opt/ws/bin/sblistpack in Sophos Web Appliance before 3.7.9.1 and 3.8 before 3.8.1.1 allows
The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1
Same weakness CWE-79 – Cross-site Scripting (XSS)
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-42806
GHSA-wrxq-46vv-55c2