CVE-2024-53263
NoneCVSS
—
EPSS
1.1%
Published
Jan 14, 2025
CISA due date
—
Cloudanix analysis
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
- Attacker crafts a malicious remote URL containing URL-encoded LF or CR characters
- Victim clones or interacts with a repository using Git LFS and the malicious URL
- Git LFS requests credentials from the git-credential helper using the tampered URL
- Credential helper returns stored credentials for the target host
- 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
- GO-2025-4038 Git LFS may write to arbitrary files via crafted symlinks in github.com/git-lfs/git-lfs Also affects github.com/git-lfs/git-lfs
- CVE-2025-22871 The net/http package improperly accepts a bare LF as a line terminator in chunked data… Also affects git-lfs
- CVE-2024-34156 Calling Decoder.Decode on a message which contains deeply nested structures can cause a… Also affects git-lfs
- CVE-2023-45288 An attacker may cause an HTTP/2 endpoint to read arbitrary amounts of header data by… Also affects git-lfs
- CVE-2023-45289 When following an HTTP redirect to a domain which is not a subdomain match or exact match… Also affects git-lfs
- CVE-2023-45290 When parsing a multipart form (either explicitly with Request.ParseMultipartForm or… Also affects git-lfs
- CVE-2024-24783 Verifying a certificate chain which contains a certificate with an unknown public key… Also affects git-lfs
- CVE-2022-32148 Improper exposure of client IP addresses in net/http before Go 1.17.12 and Go 1.18.4 can… Also affects git-lfs