CVE-2025-40991

5.4 MEDIUM

📋 TL;DR

A stored cross-site scripting (XSS) vulnerability in Ekushey CRM v5.0 allows attackers to inject malicious scripts via the description parameter when uploading project files. This affects all users of the vulnerable version and could lead to session hijacking. Attackers must first authenticate to exploit this vulnerability.

💻 Affected Systems

Products:
  • Ekushey CRM by Creativeitem
Versions: v5.0
Operating Systems: Any
Default Config Vulnerable: ⚠️ Yes
Notes: Affects the web interface component; requires authenticated access to exploit.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attacker steals administrator session cookies, gains full control of the CRM system, accesses sensitive client data, and potentially compromises the entire organization's customer information.

🟠

Likely Case

Attacker steals user session cookies to impersonate legitimate users, accesses their CRM data, and performs unauthorized actions within their permission scope.

🟢

If Mitigated

With proper input validation and output encoding, malicious scripts are neutralized, preventing session theft while maintaining normal functionality.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ✅ No
Complexity: LOW

Exploitation requires authenticated access; stored XSS payloads are simple to craft and execute.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Unknown

Vendor Advisory: https://www.incibe.es/en/incibe-cert/notices/aviso/multiple-vulnerabilities-creativeitem-products

Restart Required: No

Instructions:

1. Monitor vendor for security updates. 2. Apply patches when available. 3. Test in development environment before production deployment.

🔧 Temporary Workarounds

Input Validation Filter

all

Implement server-side input validation to sanitize description parameter content

Implement regex filtering: /[^a-zA-Z0-9\s.,!?-]/
Use PHP htmlspecialchars() or equivalent

Content Security Policy

all

Implement CSP headers to restrict script execution sources

Header set Content-Security-Policy "default-src 'self'; script-src 'self'"
Add to .htaccess or web server configuration

🧯 If You Can't Patch

  • Implement web application firewall (WAF) rules to block XSS payloads in POST requests
  • Enable HttpOnly and Secure flags on session cookies to limit cookie theft impact

🔍 How to Verify

Check if Vulnerable:

Test by uploading a project file with description parameter containing <script>alert('XSS')</script> and check if script executes when viewing the file

Check Version:

Check Ekushey CRM version in admin panel or via /ekushey/index.php/admin/system_settings

Verify Fix Applied:

Attempt the same test payload; script should not execute and input should be properly encoded in output

📡 Detection & Monitoring

Log Indicators:

  • POST requests to /ekushey/index.php/client/project_file/upload/ with script tags in parameters
  • Unusual file upload patterns from single users

Network Indicators:

  • HTTP requests containing <script> tags in POST body parameters
  • Multiple file upload attempts with similar payloads

SIEM Query:

source="web_logs" AND uri_path="/ekushey/index.php/client/project_file/upload/*" AND (http_method="POST" AND (body CONTAINS "<script>" OR body CONTAINS "javascript:"))

🔗 References

📤 Share & Export