CVE-2024-57076

7.5 HIGH

📋 TL;DR

A prototype pollution vulnerability in ajax-request v1.2.3 allows attackers to manipulate JavaScript object prototypes by sending crafted payloads to the lib.post function. This can lead to Denial of Service (DoS) by causing application crashes or unexpected behavior. Any application using the vulnerable version of ajax-request is affected.

💻 Affected Systems

Products:
  • ajax-request
Versions: v1.2.3
Operating Systems: All platforms running Node.js
Default Config Vulnerable: ⚠️ Yes
Notes: Any application using the lib.post function from ajax-request v1.2.3 is vulnerable by default.

⚠️ 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

Complete application unavailability due to DoS, potentially affecting dependent services and causing business disruption.

🟠

Likely Case

Application instability, crashes, or degraded performance when malicious payloads are processed.

🟢

If Mitigated

Limited impact with proper input validation and monitoring, but still poses availability risk.

🌐 Internet-Facing: HIGH - Web applications using this library are directly exposed to crafted HTTP requests.
🏢 Internal Only: MEDIUM - Internal applications are still vulnerable but have reduced attack surface.

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ⚠️ Yes
Complexity: MEDIUM

Exploitation requires crafting specific payloads to trigger prototype pollution via the post function.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: v1.2.4 or later

Vendor Advisory: https://gist.github.com/tariqhawis/c432b93ee7d967c2e65bc1bf39241664

Restart Required: No

Instructions:

1. Update ajax-request package to v1.2.4 or later using npm update ajax-request. 2. Verify no breaking changes in your application. 3. Test the updated version thoroughly.

🔧 Temporary Workarounds

Input Validation

all

Implement strict input validation and sanitization for all data passed to lib.post function.

Object.freeze Prototype

all

Use Object.freeze() on critical object prototypes to prevent pollution.

Object.freeze(Object.prototype);

🧯 If You Can't Patch

  • Implement WAF rules to block suspicious payload patterns targeting prototype pollution.
  • Isolate affected applications in network segments with strict traffic filtering.

🔍 How to Verify

Check if Vulnerable:

Check package.json or run npm list ajax-request to see if version 1.2.3 is installed.

Check Version:

npm list ajax-request

Verify Fix Applied:

Confirm ajax-request version is 1.2.4 or later using npm list ajax-request.

📡 Detection & Monitoring

Log Indicators:

  • Unusual POST request patterns with crafted payloads
  • Application crashes or abnormal termination logs
  • High error rates in HTTP request handling

Network Indicators:

  • HTTP POST requests with unusual parameter structures
  • Requests containing __proto__ or similar prototype manipulation strings

SIEM Query:

source="web_logs" AND (http_method="POST" AND (url_path="*ajax*" OR user_agent="*ajax-request*")) AND (request_body="*__proto__*" OR request_body="*constructor*")

🔗 References

📤 Share & Export