CVE-2024-57190

9.8 CRITICAL

📋 TL;DR

CVE-2024-57190 is an authentication bypass vulnerability in Erxes that allows attackers to impersonate any user by sending a malicious HTTP header. This affects all Erxes deployments running versions before 1.6.1, enabling unauthorized access to GraphQL endpoints and potentially sensitive data.

💻 Affected Systems

Products:
  • Erxes
Versions: All versions < 1.6.1
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: All default installations of affected Erxes versions are vulnerable. The vulnerability exists in the authentication middleware.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete system compromise where attackers can access all user data, modify configurations, execute arbitrary operations through GraphQL endpoints, and potentially pivot to other systems.

🟠

Likely Case

Unauthorized data access and manipulation, including viewing sensitive customer information, modifying business logic, and privilege escalation within the Erxes platform.

🟢

If Mitigated

Limited impact with proper network segmentation and monitoring, but still potential for data exposure if the vulnerability is exploited.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

Exploitation requires only HTTP header manipulation, making it trivial for attackers with network access to the service.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 1.6.1

Vendor Advisory: https://github.com/erxes/erxes/commit/4ed2ca797241d2ba0c9083feeadd9755c1310ce8

Restart Required: Yes

Instructions:

1. Backup your Erxes installation and data. 2. Update to Erxes version 1.6.1 or later. 3. Restart all Erxes services. 4. Verify the fix by testing authentication mechanisms.

🔧 Temporary Workarounds

Web Application Firewall Rule

all

Block or sanitize User HTTP headers at the WAF or reverse proxy level

# Example nginx configuration:
location / {
    proxy_set_header User "";
    proxy_pass http://erxes_backend;
}

Network Segmentation

linux

Restrict access to Erxes GraphQL endpoints to trusted networks only

# Example iptables rule:
iptables -A INPUT -p tcp --dport 3000 -s 10.0.0.0/8 -j ACCEPT
iptables -A INPUT -p tcp --dport 3000 -j DROP

🧯 If You Can't Patch

  • Implement strict network access controls to limit who can reach the Erxes GraphQL endpoints
  • Deploy a WAF or reverse proxy that strips or validates the User HTTP header before it reaches Erxes

🔍 How to Verify

Check if Vulnerable:

Send an HTTP request to any GraphQL endpoint with a User header containing any username. If the request succeeds without proper authentication, the system is vulnerable.

Check Version:

Check the Erxes version in the admin panel or run: docker inspect erxes | grep -i version

Verify Fix Applied:

Attempt the same exploit after patching. Requests with malicious User headers should be rejected or properly authenticated.

📡 Detection & Monitoring

Log Indicators:

  • Unusual User header values in HTTP logs
  • GraphQL requests from unexpected IP addresses or users
  • Authentication failures followed by successful requests with different User headers

Network Indicators:

  • HTTP requests containing User headers with suspicious values
  • GraphQL queries from unauthenticated sources

SIEM Query:

source="erxes" AND (http_header="User:*" AND NOT http_user_agent="normal-user-agent")

🔗 References

📤 Share & Export