Navigation Menu

Skip to content

Local clone-based data exfiltration with non-local transports

Moderate
ttaylorr published GHSA-gw92-x3fm-3g3q Feb 14, 2023

Package

No package listed

Affected versions

<= v2.39.1, v2.38.3, v2.37.5, v2.36.4, v2.35.6, v2.34.6, v2.33.6, v2.32.5, v2.31.6, v2.30.7

Patched versions

>= v2.39.2, v2.38.4, v2.37.6, v2.36.5, v2.35.7, v2.34.7, v2.33.7, v2.32.6, v2.31.7, v2.30.8

Description

Impact

Using a specially-crafted repository, Git can be tricked into using its local clone optimization even when using a non-local transport. Though Git will abort local clones whose source $GIT_DIR/objects directory contains symbolic links (c.f., CVE-2022-39253), the objects directory itself may still be a symbolic link.

These two may be combined to include arbitrary files based on known paths on the victim's filesystem within the malicious repository's working copy, allowing for data exfiltration in a similar manner as CVE-2022-39253.

Patches

A fix has been prepared and will appear in v2.39.2 v2.38.4 v2.37.6 v2.36.5 v2.35.7 v2.34.7 v2.33.7 v2.32.6, v2.31.7 and v2.30.8.

Workarounds

The most complete workaround is upgrading to the most recent patched version published.

If doing so is impractical, then there are a couple of short-term workarounds.

  • Avoid cloning repositories from untrusted sources with --recurse-submodules.
  • Instead, consider cloning repositories without recursively cloning their submodules, and instead run git submodule update at each layer. Before doing so, inspect each new .gitmodules file to ensure that it does not contain suspicious module URLs.

Credits

Credit for finding the vulnerability goes to yvvdwf.

Severity

Moderate

CVE ID

CVE-2023-22490

Weaknesses

No CWEs

Credits