CVE-2025-30370

7.4 HIGH

📋 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

Products:
  • jupyterlab-git
Versions: Versions before 0.51.1
Operating Systems: macOS, Linux
Default Config Vulnerable: ⚠️ Yes
Notes: Requires jupyterlab-git extension installed and user interaction with malicious repository name containing command substitution syntax.

⚠️ 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 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.

🌐 Internet-Facing: MEDIUM - Requires user interaction with malicious repository, but JupyterLab instances are often internet-accessible.
🏢 Internal Only: MEDIUM - Internal users could still be tricked into opening malicious repositories via shared drives or collaboration tools.

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ✅ No
Complexity: LOW

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

all

Temporarily disable the vulnerable extension until patching is possible

jupyter labextension disable @jupyterlab/git

Restrict repository access

all

Limit 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

📤 Share & Export