← Vulnerability feed

Vulnerability record · CVE-2018-11235 · published 30 May 2018

CVE-2018-11235: Git submodule name path traversal leads to remote code execution

Debian · Debian Linux

Git versions before 2.13.7, 2.14.4, 2.15.2, 2.16.4 and 2.17.1 mishandle submodule names taken from a crafted .gitmodules file. A name containing "../" is appended to $GIT_DIR/modules, allowing directory traversal that places attacker-controlled content outside the intended submodule path. Post-checkout hooks from that submodule are then executed, defeating the design that hooks are never fetched from a remote.

7.8 CVSS 3.0 High EPSS 49% · top 1.2% CWE-22 · Path traversal
7.8CVSS 3.0 base score, v2 6.8
49%EPSS exploitation probability, 30 days
NoNot in CISA KEV
9Affected product versions listed by NVD
22References, 2 tagged exploit
17 Jun 2026Last modified by NVD

Description

In Git before 2.13.7, 2.14.x before 2.14.4, 2.15.x before 2.15.2, 2.16.x before 2.16.4, and 2.17.x before 2.17.1, remote code execution can occur. With a crafted .gitmodules file, a malicious project can execute an arbitrary script on a machine that runs "git clone --recurse-submodules" because submodule "names" are obtained from this file, and then appended to $GIT_DIR/modules, leading to directory traversal with "../" in a name. Finally, post-checkout hooks from a submodule are executed, bypassing the intended design in which hooks are not obtained from a remote server.

CVSS:3.0/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H

Automated analysis

Generated by VULONE's analysis model from the NVD record, CISA KEV and EPSS data on 20 September 2026. Confidence: high.

high priorityRemote code execution triggered by a routine clone of an untrusted repository, with public exploit code and very high EPSS, though it requires the victim to clone with submodule recursion.

What it is

Git versions before 2.13.7, 2.14.4, 2.15.2, 2.16.4 and 2.17.1 mishandle submodule names taken from a crafted .gitmodules file. A name containing "../" is appended to $GIT_DIR/modules, allowing directory traversal that places attacker-controlled content outside the intended submodule path. Post-checkout hooks from that submodule are then executed, defeating the design that hooks are never fetched from a remote.

Impact

An attacker who controls a repository can execute an arbitrary script on a machine that clones it with --recurse-submodules, giving code execution in the context of the cloning user.

Attack surface

Reached when a user runs git clone --recurse-submodules against a malicious project; no authentication is required, but user interaction (the clone) is needed, matching the CVSS vector AV:L/AC:L/PR:N/UI:R.

Exploitation

Not listed in CISA KEV, but EPSS is high (0.48752, 98.8th percentile) and a public Exploit-DB entry (44822) exists, so working exploit code is publicly available.

What to do

  • Upgrade Git to 2.13.7, 2.14.4, 2.15.2, 2.16.4, 2.17.1 or later; apply the vendor errata for Debian, Ubuntu, Red Hat and Gentoo.
  • Avoid git clone --recurse-submodules on untrusted repositories until all clients are patched.
  • Audit existing clones for unexpected directories under .git/modules and for post-checkout hooks inside submodules.
  • Where feasible, restrict or disable submodule recursion in CI and developer tooling that clones external code.

Detection

  • Monitor clone operations for .gitmodules entries whose submodule name or path contains "../" or absolute paths.
  • Alert on creation or modification of .git/modules/*/hooks/post-checkout and other hook files after a clone.
  • Search filesystems and CI workspaces for hook files under .git/modules that were not placed by the local administrator.

This assessment is produced automatically and is not human-reviewed. Verify against the vendor advisory before acting on it.

Affected products

9 vulnerable configurations from NVD's CPE data, grouped by vendor and product.

References

LinkTags
http://lists.opensuse.org/opensuse-security-announce/2020-05/msg00003.html
http://www.securityfocus.com/bid/104345 Third Party AdvisoryVDB Entry
http://www.securitytracker.com/id/1040991 Third Party AdvisoryVDB Entry
https://access.redhat.com/errata/RHSA-2018:1957 Third Party Advisory
https://access.redhat.com/errata/RHSA-2018:2147 Third Party Advisory
https://blogs.msdn.microsoft.com/devops/2018/05/29/announcing-the-may-2018-git-security-vulnerability/ PatchTechnical DescriptionVendor Advisory
https://marc.info/?l=git&m=152761328506724&w=2 Release NotesThird Party Advisory
https://security.gentoo.org/glsa/201805-13 Third Party Advisory
https://usn.ubuntu.com/3671-1/ Third Party Advisory
https://www.debian.org/security/2018/dsa-4212 Third Party Advisory
https://www.exploit-db.com/exploits/44822/ ExploitThird Party AdvisoryVDB Entry
http://lists.opensuse.org/opensuse-security-announce/2020-05/msg00003.html
http://www.securityfocus.com/bid/104345 Third Party AdvisoryVDB Entry
http://www.securitytracker.com/id/1040991 Third Party AdvisoryVDB Entry
https://access.redhat.com/errata/RHSA-2018:1957 Third Party Advisory
https://access.redhat.com/errata/RHSA-2018:2147 Third Party Advisory
https://blogs.msdn.microsoft.com/devops/2018/05/29/announcing-the-may-2018-git-security-vulnerability/ PatchTechnical DescriptionVendor Advisory
https://marc.info/?l=git&m=152761328506724&w=2 Release NotesThird Party Advisory
https://security.gentoo.org/glsa/201805-13 Third Party Advisory
https://usn.ubuntu.com/3671-1/ Third Party Advisory
https://www.debian.org/security/2018/dsa-4212 Third Party Advisory
https://www.exploit-db.com/exploits/44822/ ExploitThird Party AdvisoryVDB Entry

Track CVE-2018-11235 inside VULONE

Watch it alongside the ransomware crews, C2 infrastructure and forum chatter that reference it, query it through the API and pull it into your SIEM over TAXII.

Start free Open in platform

Related vulnerabilities

Same products first, then exploited flaws of the same weakness class.

10.0CVE-2025-32433Erlang/OTP SSH server missing authentication allows remote code executionErlang/OTP SSH servers before OTP-27.3.3, OTP-26.2.5.11 and OTP-25.3.2.20 mishandle SSH protocol messages, letting an unauthenticated attacker execut…KEVEPSS 99%analysed10.0CVE-2025-24201Apple WebKit out-of-bounds write allows sandbox escapeCVE-2025-24201 is an out-of-bounds write in Apple's WebKit that was addressed with improved checks. Maliciously crafted web content may break out of …KEVEPSS 3.8%analysed10.0CVE-2021-44228Apache Log4j2 JNDI lookup remote code executionApache Log4j2 versions 2.0-beta9 through 2.15.0 (excluding 2.12.2, 2.12.3, and 2.3.1) do not protect against attacker-controlled LDAP and other JNDI …KEVEPSS 100%analysed9.8CVE-2026-24061GNU Inetutils telnetd argument injection allows remote auth bypasstelnetd in GNU Inetutils through 2.7 fails to sanitize the USER environment variable, so a value such as "-f root" is passed as an argument to login …KEVEPSS 99%analysed9.8CVE-2025-39682Linux kernel TLS zero-length record handling flaw on rx_listThe Linux kernel TLS receive path mishandles zero-length records that arrive from the rx_list, breaking the assumption that a record type change cann…KEVEPSS 2.9%analysed9.8CVE-2025-24813Apache Tomcat Default Servlet path equivalence enables RCE and file disclosureApache Tomcat mishandles path equivalence for names containing an internal dot, letting a remote unauthenticated attacker write files through the Def…KEVEPSS 100%analysed9.8CVE-2024-9680Mozilla Firefox and Thunderbird use-after-free in Animation timelinesA use-after-free flaw in Animation timelines allows an attacker to execute code in the content process of Firefox and Thunderbird. Mozilla reports ex…KEVEPSS 23%analysed9.8CVE-2023-46604Apache ActiveMQ OpenWire deserialization remote code executionThe Java OpenWire protocol marshaller in Apache ActiveMQ deserializes untrusted data, letting an attacker manipulate serialized class types so the br…KEVEPSS 100%analysed

Source: NIST National Vulnerability Database (record CVE-2018-11235), CISA KEV, FIRST EPSS (scores of 2026-09-26). This page is refreshed as NVD updates the record.