CVE-2025-40640

5.4 MEDIUM

📋 TL;DR

A stored Cross-Site Scripting (XSS) vulnerability in Energy CRM v2025 allows attackers to inject malicious scripts via the customerName_0 parameter in POST requests to /crm/create_invoice_submit.php. This could enable session cookie theft when authenticated users view compromised pages. Organizations using Energy CRM v2025 by Status Tracker Ltd are affected.

💻 Affected Systems

Products:
  • Energy CRM
Versions: v2025
Operating Systems: Any OS running Energy CRM
Default Config Vulnerable: ⚠️ Yes
Notes: Vulnerability exists in default installation when the create_invoice_submit.php endpoint is accessible.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers steal administrator session cookies, gain full system access, compromise customer data, and potentially pivot to internal networks.

🟠

Likely Case

Attackers steal user session cookies to impersonate authenticated users, access CRM data, and perform unauthorized actions.

🟢

If Mitigated

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

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires sending POST requests to the vulnerable endpoint, but attackers need to lure authenticated users to view malicious content.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Check vendor advisory for patched version

Vendor Advisory: https://www.incibe.es/en/incibe-cert/notices/aviso/multiple-vulnerabilities-energy-crm-status-tracker

Restart Required: No

Instructions:

1. Check vendor advisory for patch details. 2. Apply the security patch provided by Status Tracker Ltd. 3. Verify the fix by testing the vulnerable endpoint.

🔧 Temporary Workarounds

Input Validation and Sanitization

all

Implement server-side validation and sanitization of the customerName_0 parameter to strip or encode malicious scripts.

Web Application Firewall (WAF) Rules

all

Deploy WAF rules to block requests containing XSS payloads in the customerName_0 parameter.

🧯 If You Can't Patch

  • Implement Content Security Policy (CSP) headers to restrict script execution sources.
  • Disable or restrict access to the /crm/create_invoice_submit.php endpoint if not essential.

🔍 How to Verify

Check if Vulnerable:

Test by sending a POST request to /crm/create_invoice_submit.php with a simple XSS payload in the customerName_0 parameter (e.g., <script>alert('test')</script>) and check if it's stored and executed.

Check Version:

Check the CRM interface or configuration files for version information; specific command depends on deployment.

Verify Fix Applied:

Repeat the vulnerability test after patching; the payload should be sanitized or blocked, and no script execution should occur.

📡 Detection & Monitoring

Log Indicators:

  • Unusual POST requests to /crm/create_invoice_submit.php with script-like content in parameters.
  • Log entries showing stored content with HTML/script tags in customer data.

Network Indicators:

  • HTTP POST traffic to the vulnerable endpoint containing XSS patterns in payloads.

SIEM Query:

source="web_logs" AND uri="/crm/create_invoice_submit.php" AND (param="customerName_0" AND value MATCHES "<script.*>")

🔗 References

📤 Share & Export