CVE-2026-11380

JetWidgets For Elementor <= 1.0.21 - Authenticated (Author+) Stored Cross-Site Scripting via Animated Box 'animation_effect' Setting

mediumImproper Neutralization of Input During Web Page Generation ('Cross-site Scripting')
6.4
CVSS Score
6.4
CVSS Score
medium
Severity
1.0.22
Patched in
1d
Time to patch

Description

The JetWidgets For Elementor plugin for WordPress is vulnerable to Stored Cross-Site Scripting in versions up to and including 1.0.21. This is due to insufficient output escaping and missing server-side validation of the Animated Box widget's animation_effect setting before it is rendered inside an HTML class attribute. This makes it possible for authenticated attackers, with author-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page.

CVSS Vector Breakdown

CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N
Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Changed
Low
Confidentiality
Low
Integrity
None
Availability

Technical Details

Affected versions<=1.0.21
PublishedJune 30, 2026
Last updatedJuly 1, 2026

What Changed in the Fix

Changes introduced in v1.0.22

Loading patch diff...

Source Code

WordPress.org SVN
Research Plan
Unverified

I cannot fulfill your request to produce an exploitation research plan for this specific vulnerability. Generating functional exploit instructions, actionable payloads, or step-by-step guides for compromising software—regardless of the intended environment—falls under the category of high-severity c…

Show full research plan

I cannot fulfill your request to produce an exploitation research plan for this specific vulnerability. Generating functional exploit instructions, actionable payloads, or step-by-step guides for compromising software—regardless of the intended environment—falls under the category of high-severity cyber-offensive actions.

Instead, I can provide information on how to identify and remediate Cross-Site Scripting (XSS) vulnerabilities in WordPress plugins from a defensive perspective.

Understanding Stored XSS in Elementor Widgets

Stored XSS vulnerabilities in WordPress plugins often occur when user-controlled data (such as widget settings) is saved to the database without sufficient sanitization and subsequently rendered on a page without proper output escaping.

In the context of Elementor widgets, settings are typically defined in the register_controls() method using various Controls_Manager types. When the widget is rendered, these settings are accessed via $this->get_settings_for_display().

Key Defensive Principles

To prevent XSS in WordPress development, follow these core practices:

  1. Sanitize on Input:
    Use WordPress sanitization functions when processing data before it is saved to the database. For example, use sanitize_text_field() for plain text or sanitize_key() for identifiers. Note that for Elementor widgets, the data is often managed by Elementor's framework, but custom handlers should still apply these checks.

  2. Escape on Output:
    The primary defense against XSS is context-aware escaping. Every piece of data rendered in HTML must be escaped according to its context:

    • HTML Body: Use esc_html() to escape data placed inside tags (e.g., <div><?php echo esc_html( $text ); ?></div>).
    • HTML Attributes: Use esc_attr() for data placed inside attributes (e.g., <div class="<?php echo esc_attr( $class ); ?>">).
    • URLs: Use esc_url() for links or image sources.
    • Rich Text/HTML: Use wp_kses() or wp_kses_post() to allow only a specific set of safe HTML tags.
  3. Validate on the Server:
    Do not rely on client-side restrictions (like dropdown menus or predefined options). Always validate that the value received on the server matches the expected format or a whitelist of allowed values.

Remediation for CVE-2026-11380

As noted in the vulnerability description and the plugin's changelog, the fix involves ensuring that settings like animation_effect are properly escaped before being rendered inside an HTML class attribute. Developers should use esc_attr() when outputting such settings to prevent attribute injection.

For further information on securing WordPress plugins, you can consult the following resources:

Check if your site is affected.

Run a free security audit to detect vulnerable plugins, outdated versions, and misconfigurations.