Overview
The cybersecurity landscape is continuously evolving, with new vulnerabilities being discovered on a regular basis. One such vulnerability, identified as CVE-2025-46334, poses a significant risk to users of Git GUI, a popular interface for the Git source control management tools. This vulnerability allows a malicious repository to deliver harmful versions of sh.exe or typical textconv filter programs, such as astextplain, leading to potential system compromise or data leakage.
This vulnerability essentially stems from the design of Tcl on Windows, where the search path for an executable always includes the current directory. This comes into action when the user selects Git Bash or Browse Files from the menu, consequently invoking the malicious programs. Given the widespread use of Git GUI, this vulnerability could have far-reaching implications if not addressed promptly.
Vulnerability Summary
CVE ID: CVE-2025-46334
Severity: Critical (8.6 CVSS Score)
Attack Vector: Remote
Privileges Required: None
User Interaction: Required
Impact: Potential system compromise or data leakage
Affected Products
Escape the Surveillance Era
Most apps won’t tell you the truth.
They’re part of the problem.
Phone numbers. Emails. Profiles. Logs.
It’s all fuel for surveillance.
Ameeba Chat gives you a way out.
- • No phone number
- • No email
- • No personal info
- • Anonymous aliases
- • End-to-end encrypted
Chat without a trace.
Product | Affected Versions
Git GUI | Prior to 2.43.7, 2.44.4, 2.45.4, 2.46.4, 2.47.3, 2.48.2, 2.49.1, 2.50.1
How the Exploit Works
The exploit takes advantage of a design flaw in Tcl on Windows, which always includes the current directory in the search path when looking for an executable. A malicious repository can then ship harmful versions of sh.exe or typical textconv filter programs, such as astextplain. These programs are invoked when the user selects Git Bash or Browse Files from the menu.
Conceptual Example Code
While the exact exploit code may vary, a conceptual example might look something like this:
# Creating a malicious repository
git init malicious_repo
cd malicious_repo
# Creating a malicious sh.exe
echo 'echo You have been pwned' > sh.exe
# Committing the malicious sh.exe to the repository
git add sh.exe
git commit -m "Add sh.exe"
When a user clones this repository and opens it in Git GUI, then selects Git Bash or Browse Files, the malicious sh.exe is executed.