Cloudanix VulnDB

CVE-2024-53263

None

CVSS

—

EPSS

1.1%

Published

Jan 14, 2025

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

An attacker can trick the system into handing over saved login details for code repositories by slipping hidden formatting characters into a web address.

Exploitation
Requires User Interaction
Attacker needs
User Interaction
Complexity
Low
Impact
Data Exposure
Component
Application
Class
Credential Exposure
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

Git LFS passes unsanitized portions of a remote host URL containing URL-encoded line feed or carriage return characters to the git-credential helper and forwards any returned credentials back to the attacker-controlled host.

Why it matters to the business

Stolen Git credentials can allow attackers to access private repositories, modify source code, exfiltrate intellectual property, or pivot into connected CI/CD and deployment systems.

How an attack unfolds

An attacker embeds URL-encoded control characters in a Git remote URL, causes a victim to perform a Git LFS operation against that URL, intercepts the credential request forwarded by Git LFS to the system's credential helper, and receives the user's Git credentials for the original host.

How to fix it

Upgrade git-lfs to version 3.6.1 or later (commit ea47a34bde1ba1ecf9eb8dc6d44fcf7aef42f5e3). No workarounds exist; replace all older installations.

How to confirm the fix worked

Run `git-lfs version` and confirm 3.6.1 or newer; test credential helper behavior with a URL containing %0A or %0D to verify sanitization.

Typical attack path

  1. Attacker crafts a malicious remote URL containing URL-encoded LF or CR characters
  2. Victim clones or interacts with a repository using Git LFS and the malicious URL
  3. Git LFS requests credentials from the git-credential helper using the tampered URL
  4. Credential helper returns stored credentials for the target host
  5. Git LFS forwards those credentials to the attacker-controlled endpoint

How to detect it

Review Git and Git LFS logs for remote URLs containing percent-encoded line breaks (%0A, %0D), unusual credential-helper calls, or outbound credential transmissions to unexpected hosts.

  • %0A
  • %0D
  • git-credential.*url=.*%0
  • credential.*LF
  • credential.*CR

What your security team should do

  • Immediately upgrade all git-lfs installations to 3.6.1
  • Audit recent Git LFS operations for unexpected remote hosts
  • Rotate any Git credentials that may have been exposed via this vector
  • Add monitoring for credential-helper invocations with control characters in logs

The record

Git LFS is a Git extension for versioning large files. When Git LFS requests credentials from Git for a remote host, it passes portions of the host's URL to the `git-credential(1)` command without checking for embedded line-ending control characters, and then sends any credentials it receives back from the Git credential helper to the remote host. By inserting URL-encoded control characters such as line feed (LF) or carriage return (CR) characters into the URL, an attacker may be able to retrieve a user's Git credentials. This problem exists in all previous versions and is patched in v3.6.1. All users should upgrade to v3.6.1. There are no workarounds known at this time.

Affected packages

Ecosystem Package Introduced Fixed
Go github.com/git-lfs/git-lfs 0.1.0 No fix
Go github.com/git-lfs/git-lfs/v3 3.0.0 3.6.1
AlmaLinux:8 git-lfs 0 3.4.1-4.el8_10
AlmaLinux:9 git-lfs 0 3.4.1-4.el9_5
Bitnami git-lfs 0.1.0 3.6.1
Debian:11 git-lfs 0 No fix
Debian:11 git-lfs 0 2.13.2-1+deb11u1
Debian:12 git-lfs 0 No fix
Debian:12 git-lfs 0 3.3.0-1+deb12u1
Debian:13 git-lfs 0 No fix
Mageia:9 git-lfs 0 3.2.0-1.1.mga9
Rocky Linux:8 git-lfs 0 0:3.4.1-4.el8_10
Rocky Linux:9 git-lfs 0 0:3.4.1-4.el9_4
SUSE:Linux Enterprise Module for Package Hub 15 SP6 govulncheck-vulndb 0 0.0.20250128T150132-150000.1.29.1
SUSE:Package Hub 15 SP6 git-lfs 0 3.6.1-bp156.2.3.1
Ubuntu:18.04:LTS git-lfs 0 No fix
Ubuntu:20.04:LTS git-lfs 0 No fix
Ubuntu:22.04:LTS git-lfs 0 No fix
Ubuntu:24.04:LTS git-lfs 0 No fix
Ubuntu:24.10 git-lfs 0 No fix
Ubuntu:25.04 git-lfs 0 No fix
Ubuntu:25.10 git-lfs 0 No fix
Ubuntu:Pro:18.04:LTS git-lfs 0 No fix
Ubuntu:Pro:18.04:LTS git-lfs 0 2.3.4-1ubuntu0.1~esm1
Ubuntu:Pro:20.04:LTS git-lfs 0 No fix
Ubuntu:Pro:20.04:LTS git-lfs 0 2.9.2-1ubuntu0.1~esm2
Ubuntu:Pro:22.04:LTS git-lfs 0 No fix
Ubuntu:Pro:22.04:LTS git-lfs 0 3.0.2-1ubuntu0.3+esm2
Ubuntu:Pro:24.04:LTS git-lfs 0 No fix
Ubuntu:Pro:24.04:LTS git-lfs 0 3.4.1-1ubuntu0.3+esm2
go github.com/git-lfs/git-lfs 0.1.0 No fix
go github.com/git-lfs/git-lfs/v3 3.0.0 3.6.1
openSUSE:Leap 15.6 git-lfs 0 3.6.1-bp156.2.3.1
openSUSE:Leap 15.6 govulncheck-vulndb 0 0.0.20250128T150132-150000.1.29.1
openSUSE:Tumbleweed git-lfs 0 3.6.1-1.1
openSUSE:Tumbleweed govulncheck-vulndb 0 0.0.20250115T172141-1.1

Related vulnerabilities