CVE-2025-30370
📋 TL;DR
This vulnerability in jupyterlab-git allows command injection when users open maliciously-named Git repositories via the 'Open Git Repository in Terminal' menu option. Attackers can execute arbitrary shell commands with the privileges of the JupyterLab user. Users of JupyterLab with the jupyterlab-git extension on macOS and Linux are affected.
💻 Affected Systems
- jupyterlab-git
⚠️ 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.
- Review the CVE details at NVD
- Check vendor security advisories for your specific version
- Test if the vulnerability is exploitable in your environment
- Consider updating to the latest version as a precaution
⚠️ Risk & Real-World Impact
Worst Case
Full system compromise via arbitrary command execution leading to data theft, ransomware deployment, or lateral movement within the network.
Likely Case
Local privilege escalation, data exfiltration, or installation of backdoors on the affected system.
If Mitigated
Limited impact due to restricted user permissions, network segmentation, and proper access controls.
🎯 Exploit Status
Exploitation requires user interaction but is technically simple once a malicious repository is created with command substitution in the name.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: 0.51.1
Vendor Advisory: https://github.com/jupyterlab/jupyterlab-git/security/advisories/GHSA-cj5w-8mjf-r5f8
Restart Required: Yes
Instructions:
1. Update jupyterlab-git: pip install --upgrade jupyterlab-git==0.51.1
2. Restart JupyterLab server
3. Verify the extension version in JupyterLab interface
🔧 Temporary Workarounds
Disable jupyterlab-git extension
allTemporarily disable the vulnerable extension until patching is possible
jupyter labextension disable @jupyterlab/git
Restrict repository access
allLimit access to Git repositories from untrusted sources
🧯 If You Can't Patch
- Implement strict access controls on Git repositories and monitor for suspicious directory names
- Run JupyterLab with minimal user privileges and in isolated environments
🔍 How to Verify
Check if Vulnerable:
Check jupyterlab-git version: jupyter labextension list | grep @jupyterlab/git
Check Version:
jupyter labextension list | grep @jupyterlab/git
Verify Fix Applied:
Confirm version is 0.51.1 or higher: jupyter labextension list | grep @jupyterlab/git
📡 Detection & Monitoring
Log Indicators:
- Unusual shell commands executed from JupyterLab processes
- Creation of repositories with $(...) patterns in names
Network Indicators:
- Unexpected outbound connections from JupyterLab server
- Data exfiltration patterns
SIEM Query:
process.name:jupyter-lab AND cmdline:*$(*
🔗 References
- https://github.com/jupyterlab/jupyterlab-git/blob/7eb3b06f0092223bd5494688ec264527bbeb2195/src/commandsAndMenu.tsx#L175-L184
- https://github.com/jupyterlab/jupyterlab-git/commit/b46482993f76d3a546015c6a94ebed8b77fc2376
- https://github.com/jupyterlab/jupyterlab-git/pull/1196
- https://github.com/jupyterlab/jupyterlab-git/security/advisories/GHSA-cj5w-8mjf-r5f8
- https://github.com/jupyterlab/jupyterlab-git/security/advisories/GHSA-cj5w-8mjf-r5f8