CVE-2024-57077

9.1 CRITICAL

📋 TL;DR

CVE-2024-57077 is a prototype pollution vulnerability in utils-extend library version 1.0.8 that allows attackers to modify JavaScript object prototypes. This can lead to denial of service, unexpected behavior, or potentially remote code execution in applications using this library. Any application or service using utils-extend 1.0.8 is affected.

💻 Affected Systems

Products:
  • utils-extend
Versions: 1.0.8
Operating Systems: All platforms running Node.js applications
Default Config Vulnerable: ⚠️ Yes
Notes: Any application using utils-extend 1.0.8 with the extend function 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

Remote code execution through prototype pollution leading to complete system compromise, data theft, or lateral movement within the network.

🟠

Likely Case

Denial of service through application crashes or unexpected behavior modification, potentially leading to data corruption or service disruption.

🟢

If Mitigated

Limited impact with proper input validation and sanitization, though prototype pollution remains a serious vulnerability class.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Proof of concept available in the referenced GitHub gist. Exploitation requires attacker to control input to the extend function.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Not available

Vendor Advisory: Not available

Restart Required: No

Instructions:

No official patch available. Consider migrating to alternative libraries or implementing workarounds.

🔧 Temporary Workarounds

Input validation and sanitization

all

Implement strict input validation to prevent prototype pollution payloads from reaching the extend function.

Use Object.create(null) for target objects

all

Create target objects without prototype chain to prevent pollution.

const safeObject = Object.create(null);
lib.extend(safeObject, userInput);

🧯 If You Can't Patch

  • Implement strict input validation and sanitization for all user inputs passed to extend function
  • Use WAF rules to detect and block prototype pollution patterns in HTTP requests

🔍 How to Verify

Check if Vulnerable:

Check package.json for utils-extend version 1.0.8 or examine node_modules/utils-extend/package.json

Check Version:

npm list utils-extend

Verify Fix Applied:

Verify utils-extend is not version 1.0.8 or has been removed/replaced

📡 Detection & Monitoring

Log Indicators:

  • Unusual application crashes
  • Unexpected property modifications in logs
  • Error messages related to prototype pollution

Network Indicators:

  • HTTP requests containing __proto__ or constructor properties in payloads

SIEM Query:

source="application.logs" AND ("__proto__" OR "constructor" OR "prototype pollution")

🔗 References

📤 Share & Export