CVE-2024-57069

7.5 HIGH

📋 TL;DR

This vulnerability is a prototype pollution flaw in expand-object v0.4.2 that allows attackers to inject properties into JavaScript object prototypes. When exploited, it can cause Denial of Service (DoS) by crashing applications using this library. Anyone using expand-object v0.4.2 in their Node.js applications is affected.

💻 Affected Systems

Products:
  • expand-object
Versions: v0.4.2
Operating Systems: All platforms running Node.js
Default Config Vulnerable: ⚠️ Yes
Notes: Any application using expand-object v0.4.2 to process untrusted data is vulnerable. The vulnerability is in the lib function specifically.

⚠️ 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 crash leading to sustained downtime, potential data corruption if application state is disrupted during processing.

🟠

Likely Case

Application instability and crashes when processing malicious payloads, resulting in intermittent service disruption.

🟢

If Mitigated

Minimal impact with proper input validation and sandboxing, though some performance degradation may occur.

🌐 Internet-Facing: HIGH - Applications accepting user input and using expand-object are directly exploitable via crafted payloads.
🏢 Internal Only: MEDIUM - Internal applications could be exploited by authenticated users or through other attack vectors.

🎯 Exploit Status

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

Exploitation requires crafting specific payloads to trigger prototype pollution. No public exploit code is available at this time.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: v0.4.3 or later

Vendor Advisory: https://github.com/component/expand-object

Restart Required: No

Instructions:

1. Update package.json to use expand-object v0.4.3 or later. 2. Run 'npm update expand-object' or 'yarn upgrade expand-object'. 3. Test application functionality after update.

🔧 Temporary Workarounds

Input Validation and Sanitization

all

Implement strict input validation to reject malformed objects before passing to expand-object functions.

Object.freeze() on Prototypes

all

Freeze Object.prototype and other relevant prototypes to prevent pollution attempts.

Object.freeze(Object.prototype);

🧯 If You Can't Patch

  • Implement WAF rules to block suspicious object patterns in incoming requests
  • Isolate expand-object usage to separate worker processes with automatic restart on crash

🔍 How to Verify

Check if Vulnerable:

Check package.json or node_modules/expand-object/package.json for version 0.4.2

Check Version:

npm list expand-object | grep expand-object

Verify Fix Applied:

Verify expand-object version is 0.4.3 or higher after update

📡 Detection & Monitoring

Log Indicators:

  • Application crashes with prototype-related errors
  • Unusual memory consumption spikes
  • Stack traces mentioning expand-object or prototype pollution

Network Indicators:

  • Requests containing deeply nested or malformed JSON objects
  • Repeated requests causing application restarts

SIEM Query:

source="application.logs" AND ("expand-object" OR "prototype" OR "TypeError") AND ("crash" OR "error" OR "uncaughtException")

🔗 References

📤 Share & Export