CVE-2024-36573

9.8 CRITICAL

📋 TL;DR

CVE-2024-36573 is a prototype pollution vulnerability in almela obx versions before 0.0.4 that allows attackers to modify JavaScript object prototypes, potentially leading to arbitrary code execution. This affects any application using vulnerable versions of the @almela/obx library. The vulnerability is particularly dangerous because it can be exploited to compromise the entire application environment.

💻 Affected Systems

Products:
  • @almela/obx
Versions: All versions before 0.0.4
Operating Systems: All platforms running Node.js
Default Config Vulnerable: ⚠️ Yes
Notes: Any application using @almela/obx library versions <0.0.4 is vulnerable regardless of configuration.

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

Full system compromise with remote code execution, allowing attackers to execute arbitrary commands, steal sensitive data, or deploy malware.

🟠

Likely Case

Application compromise leading to data theft, privilege escalation, or denial of service through prototype pollution.

🟢

If Mitigated

Limited impact with proper input validation and security controls, potentially reduced to denial of service.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Proof of concept available in GitHub gist references. Exploitation requires attacker to control input to vulnerable functions.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 0.0.4

Vendor Advisory: https://gist.github.com/mestrtee/fd8181bbc180d775f8367a2b9e0ffcd1

Restart Required: Yes

Instructions:

1. Update package.json to specify @almela/obx version 0.0.4 or higher. 2. Run 'npm update @almela/obx' or 'yarn upgrade @almela/obx'. 3. Restart all affected applications and services.

🔧 Temporary Workarounds

Input Validation and Sanitization

all

Implement strict input validation and sanitization for all user-controlled data passed to obx functions.

Object.freeze on Prototypes

all

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

Object.freeze(Object.prototype);
Object.freeze(Array.prototype);

🧯 If You Can't Patch

  • Implement strict input validation and sanitization for all user inputs
  • Use web application firewall (WAF) rules to detect and block prototype pollution attempts

🔍 How to Verify

Check if Vulnerable:

Check package.json or package-lock.json for @almela/obx version. If version is <0.0.4, system is vulnerable.

Check Version:

npm list @almela/obx | grep @almela/obx

Verify Fix Applied:

Verify @almela/obx version is 0.0.4 or higher in package.json and node_modules/@almela/obx/package.json.

📡 Detection & Monitoring

Log Indicators:

  • Unusual JavaScript errors related to object properties
  • Unexpected modifications to object prototypes
  • Suspicious input patterns in obx function calls

Network Indicators:

  • Unusual HTTP requests containing prototype pollution patterns
  • Requests with nested object structures targeting obx endpoints

SIEM Query:

source="application_logs" AND ("prototype" OR "__proto__" OR "constructor") AND ("obx" OR "@almela/obx")

🔗 References

📤 Share & Export