CVE-2019-10769

9.8 CRITICAL

📋 TL;DR

CVE-2019-10769 is a critical vulnerability in the safer-eval npm package that allows arbitrary code execution by triggering a RangeError. This affects any application using vulnerable versions of safer-eval to sandbox JavaScript evaluation, potentially enabling attackers to execute malicious code on the server. Developers using this package for code evaluation in Node.js applications are at risk.

💻 Affected Systems

Products:
  • safer-eval npm package
Versions: All versions before 1.3.4
Operating Systems: All platforms running Node.js
Default Config Vulnerable: ⚠️ Yes
Notes: Any application using safer-eval with untrusted input is vulnerable. The package is designed for sandboxing but fails to properly restrict code execution.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete server compromise allowing attackers to execute arbitrary system commands, steal sensitive data, install malware, or pivot to other systems in the network.

🟠

Likely Case

Remote code execution leading to data exfiltration, cryptocurrency mining, or participation in botnets.

🟢

If Mitigated

Limited impact if the vulnerable package is not exposed to untrusted input or runs in a highly restricted environment.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires the ability to provide input to the safer-eval function. Public proof-of-concept code demonstrates the vulnerability.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 1.3.4 and later

Vendor Advisory: https://github.com/commenthol/safer-eval/security/advisories/GHSA-v63x-xc9j-hhvq

Restart Required: Yes

Instructions:

1. Update package.json to require safer-eval version 1.3.4 or higher. 2. Run 'npm update safer-eval' or 'yarn upgrade safer-eval'. 3. Restart the application to load the patched version.

🔧 Temporary Workarounds

Remove safer-eval usage

all

Replace safer-eval with alternative safe evaluation methods or remove the functionality entirely.

npm uninstall safer-eval

Input validation and sanitization

all

Implement strict input validation and sanitization before passing data to safer-eval.

🧯 If You Can't Patch

  • Isolate the vulnerable application in a restricted network segment with no internet access.
  • Implement strict input validation and monitoring for any code execution attempts.

🔍 How to Verify

Check if Vulnerable:

Check package.json or run 'npm list safer-eval' to see the installed version. If version is below 1.3.4, the system is vulnerable.

Check Version:

npm list safer-eval | grep safer-eval

Verify Fix Applied:

After updating, verify the version with 'npm list safer-eval' shows 1.3.4 or higher and test that the application functions correctly without errors.

📡 Detection & Monitoring

Log Indicators:

  • Unexpected RangeError exceptions in application logs
  • Unusual process spawns or system commands from Node.js processes
  • Abnormal network connections from the application server

Network Indicators:

  • Outbound connections to suspicious IPs or domains from the application server
  • Unexpected data exfiltration patterns

SIEM Query:

source="application.logs" AND ("RangeError" OR "safer-eval") AND severity=HIGH

🔗 References

📤 Share & Export