CVE-2024-38990

6.3 MEDIUM

📋 TL;DR

CVE-2024-38990 is a prototype pollution vulnerability in Tada5hi sp-common v0.5.4's mergeDeep function that allows attackers to inject arbitrary properties into object prototypes. This can lead to remote code execution or denial of service attacks. Anyone using the vulnerable version of this JavaScript/TypeScript library is affected.

💻 Affected Systems

Products:
  • Tada5hi sp-common
Versions: v0.5.4
Operating Systems: All platforms running Node.js
Default Config Vulnerable: ⚠️ Yes
Notes: Any application using the mergeDeep function from this library version 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

Remote code execution leading to complete system compromise, data theft, or persistent backdoor installation.

🟠

Likely Case

Denial of service through application crashes or memory exhaustion, potentially disrupting dependent services.

🟢

If Mitigated

Limited impact with proper input validation and sandboxing, potentially causing only application instability.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Prototype pollution vulnerabilities are well-understood and easily weaponized in JavaScript environments.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: v0.5.5 or later

Vendor Advisory: https://github.com/Tada5hi/sp-common/security/advisories

Restart Required: Yes

Instructions:

1. Update package.json to use sp-common v0.5.5 or later. 2. Run 'npm update @tada5hi/sp-common' or 'yarn upgrade @tada5hi/sp-common'. 3. Restart all affected applications and services.

🔧 Temporary Workarounds

Input validation wrapper

all

Wrap mergeDeep calls with validation to reject objects with prototype pollution indicators

// Implement custom validation before calling mergeDeep
function safeMergeDeep(target, source) {
  // Check for __proto__ or constructor properties
  if (source && (source.__proto__ || source.constructor)) {
    throw new Error('Potential prototype pollution attempt');
  }
  return mergeDeep(target, source);
}

🧯 If You Can't Patch

  • Implement strict input validation and sanitization for all mergeDeep function inputs
  • Deploy web application firewall (WAF) rules to detect and block prototype pollution patterns

🔍 How to Verify

Check if Vulnerable:

Check package.json or package-lock.json for '@tada5hi/sp-common' version 0.5.4

Check Version:

npm list @tada5hi/sp-common | grep @tada5hi/sp-common

Verify Fix Applied:

Verify package.json shows version 0.5.5 or later and test mergeDeep with known malicious payloads

📡 Detection & Monitoring

Log Indicators:

  • Unusual application crashes
  • Memory exhaustion errors
  • Suspicious object property names like __proto__ or constructor in logs

Network Indicators:

  • Unusual HTTP POST/PUT payloads containing prototype pollution patterns

SIEM Query:

source="application.logs" AND ("mergeDeep" OR "__proto__" OR "constructor") AND severity=ERROR

🔗 References

📤 Share & Export