Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2026-18202

CVE-2026-18202: JetEngine WordPress Plugin XSS Vulnerability

CVE-2026-18202 is a stored XSS vulnerability in JetEngine WordPress plugin that allows Authors to upload malicious SVG files. This post covers the technical details, affected versions, security impact, and mitigation.

Updated:

CVE-2026-18202 Overview

CVE-2026-18202 affects the JetEngine WordPress plugin in versions before 3.8.14. The plugin adds SVG to the site-wide list of allowed upload types without sanitizing file contents. Authenticated users with the upload_files capability, such as Authors, can upload SVG files containing malicious JavaScript. The script executes in the browser of any user who opens the file, resulting in Stored Cross-Site Scripting (XSS). On multisite installations, the plugin also overrides upload-type restrictions set by the network administrator, expanding the attack surface across the entire network.

Critical Impact

Authenticated Authors can upload SVG files that execute arbitrary JavaScript in visitors' browsers, enabling session theft, privilege escalation through administrative actions, and defacement across single-site and multisite WordPress deployments.

Affected Products

  • JetEngine WordPress plugin versions prior to 3.8.14
  • WordPress single-site installations running vulnerable JetEngine
  • WordPress multisite networks where JetEngine overrides network-level upload restrictions

Discovery Timeline

  • 2026-08-19 - CVE-2026-18202 published to NVD
  • 2026-08-19 - Last updated in NVD database

Technical Details for CVE-2026-18202

Vulnerability Analysis

The vulnerability is a Stored Cross-Site Scripting flaw classified under [CWE-79]. JetEngine registers SVG as an allowed MIME type through the WordPress upload_mimes filter. The plugin does not inspect or sanitize the contents of uploaded SVG files. SVG is an XML-based format that natively supports <script> elements and event handlers such as onload. An uploaded SVG containing embedded JavaScript executes when a browser renders the file directly from the media library URL. The script runs in the origin of the WordPress site, giving it access to session cookies, the REST API, and any privileged actions the viewing user can perform.

Root Cause

The plugin extends the WordPress allowed upload types list to include SVG without pairing this change with server-side content sanitization. WordPress core does not sanitize SVG files by default because it does not accept them as a safe upload type. By enabling SVG uploads without integrating a sanitizer such as enshrined/svg-sanitize, JetEngine allows arbitrary XML payloads to persist as media library assets. On multisite, the filter runs at the site level and overrides the network administrator's upload_filetypes option, bypassing an intentional network-wide control.

Attack Vector

An attacker requires an authenticated account with the upload_files capability, which the Author role grants by default. The attacker crafts an SVG file containing a <script> block or event-handler attribute. They upload the file through the standard media library interface. The resulting URL is served with the image/svg+xml content type. When an administrator or other user opens the file URL directly, the embedded JavaScript executes in the site's origin, allowing cookie theft, forged administrative requests, or account takeover.

Detection Methods for CVE-2026-18202

Indicators of Compromise

  • SVG files present in wp-content/uploads/ containing <script> tags, javascript: URIs, or on* event handler attributes
  • Media library entries with the image/svg+xml MIME type uploaded by non-administrative users
  • Unexpected outbound requests from administrator browsers immediately after viewing media library items
  • New administrator accounts or modified user roles following SVG uploads by Author-level users

Detection Strategies

  • Scan the uploads directory for .svg files and grep for <script, onload=, onerror=, and href="javascript: patterns
  • Audit the WordPress wp_posts table for post_mime_type = 'image/svg+xml' entries created by lower-privileged accounts
  • Review web server access logs for direct GET requests to .svg files under /wp-content/uploads/ referred from wp-admin

Monitoring Recommendations

  • Alert on any SVG upload event authored by non-administrator accounts
  • Monitor wp-admin sessions for anomalous REST API calls originating from browsers that recently loaded SVG media
  • Track JetEngine plugin version across all WordPress instances and flag installations below 3.8.14

How to Mitigate CVE-2026-18202

Immediate Actions Required

  • Update the JetEngine plugin to version 3.8.14 or later on all affected WordPress sites
  • Audit existing SVG files in the media library and remove any containing script tags or event handlers
  • Review Author-level and higher accounts created recently for signs of misuse
  • On multisite networks, reapply network administrator upload-type restrictions after patching

Patch Information

Crocoblock addressed the issue in JetEngine 3.8.14. The fix removes unsanitized SVG registration or applies content sanitization to uploaded SVG files. Refer to the WPScan Vulnerability Report for advisory details.

Workarounds

  • Restrict the upload_files capability to trusted roles only using a capability manager plugin
  • Configure the web server to serve .svg files with Content-Disposition: attachment to prevent inline rendering
  • Deploy an SVG sanitization plugin that strips scripts and event handlers before files are stored
  • On multisite, enforce upload-type restrictions at the reverse proxy or WAF layer where plugin filters cannot override them

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.