CVE-2025-60932

6.1 MEDIUM

📋 TL;DR

Multiple stored XSS vulnerabilities in HR Performance Solutions Performance Pro allow attackers to inject malicious scripts into goal-related fields. When users view these fields, the scripts execute in their browser context, potentially stealing session cookies or performing actions as the user. Organizations using Performance Pro v3.19.17 or earlier are affected.

💻 Affected Systems

Products:
  • HR Performance Solutions Performance Pro
Versions: v3.19.17 and earlier
Operating Systems: Any OS running Performance Pro
Default Config Vulnerable: ⚠️ Yes
Notes: All installations with the Current Goals function enabled are vulnerable. No special configuration required.

⚠️ Manual Verification Required

This CVE does not have specific version information in our database, so automatic vulnerability detection cannot determine if your system is affected.

Why? The CVE database entry doesn't specify which versions are vulnerable (no version ranges provided by the vendor/NVD).

🔒 Custom verification scripts are available for registered users. Sign up free to download automated test scripts.

Recommended Actions:
  1. Review the CVE details at NVD
  2. Check vendor security advisories for your specific version
  3. Test if the vulnerability is exploitable in your environment
  4. Consider updating to the latest version as a precaution

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could steal administrator session cookies, gain full system access, pivot to internal networks, or deploy ransomware across the organization.

🟠

Likely Case

Attackers steal user session cookies to impersonate legitimate users, access sensitive HR data, or modify performance records.

🟢

If Mitigated

With proper input validation and output encoding, malicious scripts are neutralized before execution, preventing exploitation.

🌐 Internet-Facing: HIGH if the application is exposed to the internet, as attackers can inject payloads remotely and target any user.
🏢 Internal Only: MEDIUM if restricted to internal networks, but still risky due to potential insider threats or compromised internal systems.

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ✅ No
Complexity: MEDIUM

Exploitation requires the ability to create or modify goals (typically authenticated users). Attackers need to craft XSS payloads for the specific vulnerable parameters.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: PP-Release-6.3.2.0

Vendor Advisory: Not provided in CVE details

Restart Required: No

Instructions:

1. Download PP-Release-6.3.2.0 from vendor. 2. Backup current installation. 3. Apply the update following vendor documentation. 4. Verify fix by testing XSS payloads in affected fields.

🔧 Temporary Workarounds

Input Validation and Sanitization

all

Implement server-side validation to reject or sanitize HTML/script content in Goal Name, Goal Notes, Action Step Name, Action Step Description, Note Name, and Goal Description fields.

Content Security Policy (CSP)

all

Deploy a strict CSP header to block inline scripts and restrict script sources, reducing XSS impact.

Content-Security-Policy: default-src 'self'; script-src 'self'

🧯 If You Can't Patch

  • Disable the Current Goals function if not essential for business operations.
  • Implement a web application firewall (WAF) with XSS protection rules to block malicious payloads.

🔍 How to Verify

Check if Vulnerable:

Test by entering a simple XSS payload like <script>alert('XSS')</script> into Goal Name field and check if it executes when viewed.

Check Version:

Check application version in admin panel or via vendor-specific method (command not specified).

Verify Fix Applied:

After patching, test the same XSS payloads; they should be sanitized or blocked without execution.

📡 Detection & Monitoring

Log Indicators:

  • Unusual long strings with HTML/script tags in goal-related fields in application logs
  • Multiple failed login attempts followed by goal creation/modification

Network Indicators:

  • HTTP requests containing script tags or JavaScript in POST parameters to goal endpoints

SIEM Query:

source="performance_pro_logs" AND (message="*<script>*" OR message="*javascript:*")

🔗 References

📤 Share & Export