CVE-2020-28439

9.8 CRITICAL

📋 TL;DR

CVE-2020-28439 is a critical OS command injection vulnerability in the corenlp-js-prefab npm package that allows attackers to execute arbitrary commands on affected systems. All versions of this package are vulnerable due to improper input sanitization in the index.js file. Any application using this package for natural language processing is at risk.

💻 Affected Systems

Products:
  • corenlp-js-prefab
Versions: All versions
Operating Systems: All platforms running Node.js
Default Config Vulnerable: ⚠️ Yes
Notes: Vulnerability originates from dependency on vulnerable corenlp-js-interface package. Any application using corenlp-js-prefab is affected regardless of configuration.

📦 What is this software?

⚠️ 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 allowing remote code execution, data exfiltration, lateral movement, and complete control of the affected server.

🟠

Likely Case

Remote code execution leading to data theft, cryptocurrency mining, or deployment of additional malware payloads.

🟢

If Mitigated

Limited impact with proper input validation and sandboxing, potentially only affecting the application's own data.

🌐 Internet-Facing: HIGH - Web applications using this package could be exploited remotely without authentication.
🏢 Internal Only: MEDIUM - Internal applications could still be exploited through authenticated user input or internal attackers.

🎯 Exploit Status

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

Proof of concept available in vulnerability disclosure. Simple command injection via user-controlled input.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Update to corenlp-js-interface 1.0.2 or later

Vendor Advisory: https://snyk.io/vuln/SNYK-JS-CORENLPJSPREFAB-1050434

Restart Required: Yes

Instructions:

1. Update corenlp-js-interface dependency to version 1.0.2 or later. 2. Run 'npm update corenlp-js-interface'. 3. Restart your application. 4. Verify no vulnerable versions remain with 'npm list corenlp-js-interface'.

🔧 Temporary Workarounds

Input Validation and Sanitization

all

Implement strict input validation and sanitization for all user inputs passed to corenlp-js-prefab functions.

Remove Package

all

Temporarily remove corenlp-js-prefab from your application until patched.

npm uninstall corenlp-js-prefab

🧯 If You Can't Patch

  • Implement strict network segmentation to isolate affected systems
  • Deploy application-level firewalls with command injection detection rules

🔍 How to Verify

Check if Vulnerable:

Check package.json for corenlp-js-prefab dependency and run 'npm list corenlp-js-interface' to check version.

Check Version:

npm list corenlp-js-interface

Verify Fix Applied:

Verify corenlp-js-interface version is 1.0.2 or later with 'npm list corenlp-js-interface' and test with safe input.

📡 Detection & Monitoring

Log Indicators:

  • Unusual command execution patterns in application logs
  • Error messages containing shell commands
  • Unexpected process spawns from Node.js application

Network Indicators:

  • Outbound connections to suspicious IPs from application server
  • Unexpected DNS queries for command and control domains

SIEM Query:

process.name:node AND (cmdline:*cmd.exe* OR cmdline:*sh* OR cmdline:*bash*) AND NOT user:root

🔗 References

📤 Share & Export