Cloudanix VulnDB

CVE-2025-27614

High · 8.6

CVSS

8.6

EPSS

0.4%

Published

Jul 10, 2025

CISA due date

—

Cloudanix analysis

Monitor only SSVC: Track

Someone can trick a developer using a Git history viewer into accidentally running harmful code from a specially made repository.

Exploitation
Requires User Interaction
Attacker needs
User Interaction
Complexity
Moderate
Impact
Full Compromise
Component
Application
Class
Command Injection
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

A crafted Git repository allows arbitrary script execution via gitk when a user invokes it on a specially structured filename, running the attacker-supplied script with the user's privileges.

Why it matters to the business

Developers or users interacting with malicious repositories risk unauthorized code execution on their systems, potentially leading to credential theft, data exfiltration, or further compromise; urgency remains moderate given the 475-day publication age, lack of KEV listing, and slow EPSS growth despite named threat actor references.

How an attack unfolds

An attacker creates a Git repository containing a filename with a particular structure that embeds or references an arbitrary script (Bourne shell, Perl, Python, etc.); through social engineering the victim is induced to clone the repository and run gitk against that filename, triggering execution of the script under the victim's privileges. The Git Link Following Vulnerability campaign highlights targeted use against developers.

How to fix it

Upgrade Git to one of the fixed versions 2.43.7, 2.44.4, 2.45.4, 2.46.4, 2.47.3, 2.48.2, 2.49.1, or 2.50; for the listed packages apply jitsucom-jitsu, jitsucom-jitsu-console, and jitsucom-jitsu-rotor updates to 2.10.0-r2 on both Chainguard and Wolfi; update j6t/gitk to commit 8e3070aa5e331be45d4d03e3be41f84494fce129.

How to confirm the fix worked

Verify the installed Git version matches a fixed release; attempt to reproduce the issue with a test repository containing a crafted filename and confirm no script execution occurs; review package manifests for the exact fixed versions listed per distribution.

Typical attack path

  1. Craft a malicious Git repository embedding a specially structured filename that references an attacker-controlled script
  2. Distribute or socially engineer the victim into cloning the repository
  3. Trick the victim into invoking gitk on the crafted filename
  4. Script executes with the privileges of the invoking user

How to detect it

Search process execution logs and command-line audit trails for gitk invocations referencing unusual or specially named files within cloned repositories; correlate with subsequent execution of scripts (shell, Python, Perl) that were not explicitly invoked by the user; review threat actor references to the Git Link Following Vulnerability for context on targeted developer environments.

  • gitk filename
  • gitk invocation on repository path containing embedded script reference
  • unexpected script execution immediately following gitk process start

What your security team should do

  • Immediately upgrade all Git installations to a patched version listed in remediation guidance
  • Block or monitor gitk usage in CI/CD or developer environments until patches are applied
  • Educate users on risks of invoking gitk directly on untrusted repository contents
  • Add gitk and related Tcl/Tk processes to endpoint monitoring rules for anomalous script execution

The record

Gitk is a Tcl/Tk based Git history browser. Starting with 2.41.0, a Git repository can be crafted in such a way that with some social engineering a user who has cloned the repository can be tricked into running any script (e.g., Bourne shell, Perl, Python, ...) supplied by the attacker by invoking gitk filename, where filename has a particular structure. The script is run with the privileges of the user. This vulnerability is fixed in 2.43.7, 2.44.4, 2.45.4, 2.46.4, 2.47.3, 2.48.2, 2.49.1, and 2.50.

Affected packages

Ecosystem Package Introduced Fixed
AlmaLinux:10 git 0 2.47.3-1.el10_0
AlmaLinux:10 git-all 0 2.47.3-1.el10_0
AlmaLinux:10 git-core 0 2.47.3-1.el10_0
AlmaLinux:10 git-core-doc 0 2.47.3-1.el10_0
AlmaLinux:10 git-credential-libsecret 0 2.47.3-1.el10_0
AlmaLinux:10 git-daemon 0 2.47.3-1.el10_0
AlmaLinux:10 git-email 0 2.47.3-1.el10_0
AlmaLinux:10 git-gui 0 2.47.3-1.el10_0
AlmaLinux:10 git-instaweb 0 2.47.3-1.el10_0
AlmaLinux:10 git-subtree 0 2.47.3-1.el10_0
AlmaLinux:10 git-svn 0 2.47.3-1.el10_0
AlmaLinux:10 gitk 0 2.47.3-1.el10_0
AlmaLinux:10 gitweb 0 2.47.3-1.el10_0
AlmaLinux:10 perl-Git 0 2.47.3-1.el10_0
AlmaLinux:10 perl-Git-SVN 0 2.47.3-1.el10_0
AlmaLinux:8 git 0 2.43.7-1.el8_10
AlmaLinux:8 git-all 0 2.43.7-1.el8_10
AlmaLinux:8 git-core 0 2.43.7-1.el8_10
AlmaLinux:8 git-core-doc 0 2.43.7-1.el8_10
AlmaLinux:8 git-credential-libsecret 0 2.43.7-1.el8_10
AlmaLinux:8 git-daemon 0 2.43.7-1.el8_10
AlmaLinux:8 git-email 0 2.43.7-1.el8_10
AlmaLinux:8 git-gui 0 2.43.7-1.el8_10
AlmaLinux:8 git-instaweb 0 2.43.7-1.el8_10
AlmaLinux:8 git-subtree 0 2.43.7-1.el8_10
AlmaLinux:8 git-svn 0 2.43.7-1.el8_10
AlmaLinux:8 gitk 0 2.43.7-1.el8_10
AlmaLinux:8 gitweb 0 2.43.7-1.el8_10
AlmaLinux:8 perl-Git 0 2.43.7-1.el8_10
AlmaLinux:8 perl-Git-SVN 0 2.43.7-1.el8_10
AlmaLinux:9 git 0 2.47.3-1.el9_6
AlmaLinux:9 git-all 0 2.47.3-1.el9_6
AlmaLinux:9 git-core 0 2.47.3-1.el9_6
AlmaLinux:9 git-core-doc 0 2.47.3-1.el9_6
AlmaLinux:9 git-credential-libsecret 0 2.47.3-1.el9_6
AlmaLinux:9 git-daemon 0 2.47.3-1.el9_6
AlmaLinux:9 git-email 0 2.47.3-1.el9_6
AlmaLinux:9 git-gui 0 2.47.3-1.el9_6
AlmaLinux:9 git-instaweb 0 2.47.3-1.el9_6
AlmaLinux:9 git-subtree 0 2.47.3-1.el9_6
AlmaLinux:9 git-svn 0 2.47.3-1.el9_6
AlmaLinux:9 gitk 0 2.47.3-1.el9_6
AlmaLinux:9 gitweb 0 2.47.3-1.el9_6
AlmaLinux:9 perl-Git 0 2.47.3-1.el9_6
AlmaLinux:9 perl-Git-SVN 0 2.47.3-1.el9_6
Alpine:v3.19 git 0 2.43.7-r0
Alpine:v3.20 git 0 2.45.4-r0
Alpine:v3.21 git 0 2.47.3-r0
Alpine:v3.22 git 0 2.49.1-r0
Debian:11 git 0 No fix
Debian:12 git 0 No fix
Debian:13 git 0 No fix
Debian:14 git 0 1:2.50.1-0.1
SUSE:Linux Enterprise Module for Basesystem 15 SP6 git 0 2.51.0-150600.3.12.1
SUSE:Linux Enterprise Module for Basesystem 15 SP7 git 0 2.51.0-150600.3.12.1
SUSE:Linux Enterprise Module for Development Tools 15 SP6 git 0 2.51.0-150600.3.12.1
SUSE:Linux Enterprise Module for Development Tools 15 SP6 git-lfs 0 3.7.0-150600.13.3.1
SUSE:Linux Enterprise Module for Development Tools 15 SP6 obs-scm-bridge 0 0.7.4-150600.14.4.1
SUSE:Linux Enterprise Module for Development Tools 15 SP7 git 0 2.51.0-150600.3.12.1
SUSE:Linux Enterprise Module for Development Tools 15 SP7 git-lfs 0 3.7.0-150600.13.3.1
SUSE:Linux Enterprise Module for Development Tools 15 SP7 obs-scm-bridge 0 0.7.4-150600.14.4.1
SUSE:Linux Enterprise Module for Python 3 15 SP6 python-PyYAML 0 6.0.2-150600.10.3.1
SUSE:Linux Enterprise Module for Python 3 15 SP7 python-PyYAML 0 6.0.2-150600.10.3.1
openSUSE:Leap 15.6 git 0 2.51.0-150600.3.12.1
openSUSE:Leap 15.6 git-lfs 0 3.7.0-150600.13.3.1
openSUSE:Leap 15.6 obs-scm-bridge 0 0.7.4-150600.14.4.1
openSUSE:Leap 15.6 python-PyYAML 0 6.0.2-150600.10.3.1
openSUSE:Tumbleweed git 0 2.50.1-1.1

Related vulnerabilities