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
A new way to communicate
Ameeba Chat is built on encrypted identity, not personal profiles.
Message, call, share files, and coordinate with identities kept separate.
- • Encrypted identity
- • Ameeba Chat authenticates access
- • Aliases and categories
- • End-to-end encrypted chat, calls, and files
- • Secure notes for sensitive information
Private communication, rethought.
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.
