CVE-2021-23330
📋 TL;DR
CVE-2021-23330 is a command injection vulnerability in the launchpad npm package that allows attackers to execute arbitrary commands on the host system via the stop function. All versions of launchpad are affected, putting any application using this package at risk of remote code execution.
💻 Affected Systems
- launchpad npm package
📦 What is this software?
Launchpad by Bitovi
Launchpad by Bitovi
Launchpad by Bitovi
Launchpad by Bitovi
Launchpad by Bitovi
Launchpad by Bitovi
Launchpad by Bitovi
Launchpad by Bitovi
Launchpad by Bitovi
Launchpad by Bitovi
Launchpad by Bitovi
Launchpad by Bitovi
Launchpad by Bitovi
Launchpad by Bitovi
Launchpad by Bitovi
Launchpad by Bitovi
Launchpad by Bitovi
Launchpad by Bitovi
Launchpad by Bitovi
Launchpad by Bitovi
Launchpad by Bitovi
Launchpad by Bitovi
Launchpad by Bitovi
Launchpad by Bitovi
Launchpad by Bitovi
Launchpad by Bitovi
⚠️ Risk & Real-World Impact
Worst Case
Full system compromise with attacker gaining complete control over the server, allowing data theft, lateral movement, and persistent backdoor installation.
Likely Case
Remote code execution leading to data exfiltration, cryptocurrency mining, or participation in botnets.
If Mitigated
Limited impact with proper input validation and sandboxing, potentially only affecting the application's own data.
🎯 Exploit Status
Exploitation requires user input to reach the vulnerable stop function, which is common in web applications.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: launchpad version with the fix applied
Vendor Advisory: https://github.com/bitovi/launchpad/pull/124
Restart Required: Yes
Instructions:
1. Update launchpad package to patched version. 2. Run 'npm update launchpad' or update package.json. 3. Restart the application.
🔧 Temporary Workarounds
Input Validation
allImplement strict input validation for any parameters passed to launchpad functions
Sandbox Execution
allRun the application in a container or sandboxed environment to limit potential damage
🧯 If You Can't Patch
- Remove or disable functionality using the launchpad stop function
- Implement network segmentation and strict firewall rules to limit attack surface
🔍 How to Verify
Check if Vulnerable:
Check if your application uses launchpad package and calls the stop function with user input
Check Version:
npm list launchpad
Verify Fix Applied:
Verify launchpad package version is updated and test that command injection attempts are blocked
📡 Detection & Monitoring
Log Indicators:
- Unusual process spawns from Node.js application
- Suspicious command execution patterns
Network Indicators:
- Unexpected outbound connections from application server
- Command and control traffic patterns
SIEM Query:
process.name:cmd.exe OR process.name:bash AND parent.name:node.exe
🔗 References
- https://github.com/bitovi/launchpad/issues/123%23issuecomment-732188118
- https://github.com/bitovi/launchpad/pull/124
- https://snyk.io/vuln/SNYK-JS-LAUNCHPAD-1044065
- https://github.com/bitovi/launchpad/issues/123%23issuecomment-732188118
- https://github.com/bitovi/launchpad/pull/124
- https://snyk.io/vuln/SNYK-JS-LAUNCHPAD-1044065