CVE-2023-4759: Improper handling of case insensitive filesystems in Eclipse JGit allows arbitrary file write

Published Sep 12, 2023
·
Updated

Arbitrary File Overwrite in Eclipse JGit <= 6.6.0

In Eclipse JGit, all versions <= 6.6.0.202305301015-r, a symbolic link present in a specially crafted git repository can be used to write a file to locations outside the working tree when this repository is cloned with JGit to a case-insensitive filesystem, or when a checkout from a clone of such a repository is performed on a case-insensitive filesystem.

This can happen on checkout (DirCacheCheckout), merge (ResolveMerger via its WorkingTreeUpdater), pull (PullCommand using merge), and when applying a patch (PatchApplier). This can be exploited for remote code execution (RCE), for instance if the file written outside the working tree is a git filter that gets executed on a subsequent git command.

The issue occurs only on case-insensitive filesystems, like the default filesystems on Windows and macOS. The user performing the clone or checkout must have the rights to create symbolic links for the problem to occur, and symbolic links must be enabled in the git configuration.

Setting git configuration option core.symlinks = false before checking out avoids the problem.

The issue was fixed in Eclipse JGit version 6.6.1.202309021850-r and 6.7.0.202309050840-r, available via Maven Central https://repo1.maven.org/maven2/org/eclipse/jgit/  and repo.eclipse.org https://repo.eclipse.org/content/repositories/jgit-releases/ .

The JGit maintainers would like to thank RyotaK for finding and reporting this issue.

Other sources

Arbitrary File Overwrite in Eclipse JGit <= 6.6.0

In Eclipse JGit, all versions <= 6.6.0.202305301015-r, a symbolic link present in a specially crafted git repository can be used to write a file to locations outside the working tree when this repository is cloned with JGit to a case-insensitive filesystem, or when a checkout from a clone of such a repository is performed on a case-insensitive filesystem.

This can happen on checkout (DirCacheCheckout), merge (ResolveMerger via its WorkingTreeUpdater), pull (PullCommand using merge), and when applying a patch (PatchApplier). This can be exploited for remote code execution (RCE), for instance if the file written outside the working tree is a git filter that gets executed on a subsequent git command.

The issue occurs only on case-insensitive filesystems, like the default filesystems on Windows and macOS. The user performing the clone or checkout must have the rights to create symbolic links for the problem to occur, and symbolic links must be enabled in the git configuration.

Setting git configuration option core.symlinks = false before checking out avoids the problem.

The issue was fixed in Eclipse JGit version 6.6.1.202309021850-r and 6.7.0.202309050840-r, available via Maven Central https://repo1.maven.org/maven2/org/eclipse/jgit/  and repo.eclipse.org https://repo.eclipse.org/content/repositories/jgit-releases/ . A backport is available in 5.13.3 starting from 5.13.3.202401111512-r.

The JGit maintainers would like to thank RyotaK for finding and reporting this issue.

NVD

Eclipse JGit could allow a remote attacker to execute arbitrary code on the system, caused by improper handling of case insensitive filesystems. By using a specially crafted symlink, an attacker could exploit this vulnerability to execute arbitrary code on the system.

IBM

Affected Software

10 affected componentsFixes available
Eclipse JGit>=6.6.0<6.6.1.202309021850
Eclipse JGit>=6.7.0<6.7.0.202309050840
maven/org.eclipse.jgit:org.eclipse.jgit<5.13.3.202401111512-r
5.13.3.202401111512-r
maven/org.eclipse.jgit:org.eclipse.jgit>=6.0.0.202111291000-r<=6.6.0.202305301015-r
6.6.1.202309021850-r
Eclipse JGit<6.6.0.202305301015
All of the following
Any of the following
Eclipse JGit<5.13.3.202401111512-r
Eclipse JGit>=6.6.0<6.6.0.202305301015
Eclipse JGit>=6.7.0<6.7.0.202309050840
Any of the following
macOS
Microsoft Windows

Event History

Sep 12, 2023
CVE Published
via MITRE·09:12 AM
Data Sourced
via MITRE·09:12 AM
DescriptionSeverityWeakness
Data Sourced
via Red Hat·07:41 PM
DescriptionSeverityAffected Software
Sep 18, 2023
Advisory Published
via GitHub·03:30 PM
May 2, 2025
Data Sourced
via IBM·12:00 AM
DescriptionAffected Software

Parent advisories

This vulnerability appears in the following advisories.

Free Weekly Intel

Don't miss critical vulnerabilities

Join thousands of security professionals who receive our weekly digest of trending CVEs, zero-days, and exploited vulnerabilities.

No spam. Unsubscribe anytime.

Frequently Asked Questions

1

What is the vulnerability ID for this issue?

The vulnerability ID for this issue is CVE-2023-4759.

2

What is the severity of CVE-2023-4759?

The severity of CVE-2023-4759 is high with a severity value of 8.8.

3

Which software versions are affected by CVE-2023-4759?

All versions of Eclipse JGit up to and including 6.6.0 are affected by CVE-2023-4759.

4

How can the vulnerability CVE-2023-4759 be exploited?

CVE-2023-4759 can be exploited by using a symbolic link present in a specially crafted git repository to write a file to locations outside the working tree when the repository is cloned with JGit to a case-insensitive file system.

5

Is there a fix available for CVE-2023-4759?

Yes, a fix is available for CVE-2023-4759 in version 6.6.1.202309021850-r of Eclipse JGit.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203