CVE-2020-17159
📋 TL;DR
This vulnerability in Visual Studio Code Java Extension Pack allows remote code execution when a user opens a malicious Java project. Attackers can execute arbitrary code on the victim's system by exploiting flaws in how the extension handles project files. Users of Visual Studio Code with the Java Extension Pack installed are affected.
💻 Affected Systems
- Visual Studio Code Java Extension Pack
📦 What is this software?
⚠️ Risk & Real-World Impact
Worst Case
Complete system compromise allowing attacker to install malware, steal credentials, or pivot to other systems.
Likely Case
Local privilege escalation leading to data theft, ransomware deployment, or persistent backdoor installation.
If Mitigated
Limited impact if extension is disabled or user avoids opening untrusted Java projects.
🎯 Exploit Status
Requires user to open a malicious Java project file; no authentication bypass needed.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Version 0.10.0 or later
Vendor Advisory: https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2020-17159
Restart Required: Yes
Instructions:
1. Open Visual Studio Code. 2. Go to Extensions view (Ctrl+Shift+X). 3. Search for 'Java Extension Pack'. 4. Click Update if available, or uninstall and reinstall latest version. 5. Restart Visual Studio Code.
🔧 Temporary Workarounds
Disable Java Extension Pack
allTemporarily disable the vulnerable extension until patched.
code --disable-extension vscjava.vscode-java-pack
Restrict project sources
allOnly open Java projects from trusted sources.
🧯 If You Can't Patch
- Disable Java Extension Pack completely in Visual Studio Code settings
- Implement application whitelisting to prevent execution of unauthorized binaries
🔍 How to Verify
Check if Vulnerable:
Check Java Extension Pack version in Visual Studio Code Extensions view; versions before 0.10.0 are vulnerable.
Check Version:
code --list-extensions --show-versions | grep vscjava.vscode-java-pack
Verify Fix Applied:
Verify Java Extension Pack version is 0.10.0 or later in Extensions view.
📡 Detection & Monitoring
Log Indicators:
- Unusual process execution from Visual Studio Code
- Java Extension Pack errors or crashes
Network Indicators:
- Unexpected outbound connections from Visual Studio Code process
SIEM Query:
Process Creation where Parent Process Name contains 'Code.exe' and Command Line contains suspicious patterns