<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Gix-Pack — CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/tags/gix-pack/</link><description>Trending threats, MITRE ATT&amp;CK coverage, and detection metadata — refreshed continuously.</description><generator>Hugo</generator><language>en</language><managingEditor>hello@craftedsignal.io</managingEditor><webMaster>hello@craftedsignal.io</webMaster><lastBuildDate>Tue, 05 May 2026 19:24:15 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/tags/gix-pack/feed.xml" rel="self" type="application/rss+xml"/><item><title>gix-pack Denial-of-Service Vulnerabilities</title><link>https://feed.craftedsignal.io/briefs/2024-01-09-gix-pack-dos/</link><pubDate>Tue, 05 May 2026 19:24:15 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2024-01-09-gix-pack-dos/</guid><description>Multiple denial-of-service vulnerabilities exist in `gix-pack`; crafted delta data can cause unchecked array indexing, leading to panics, and uncapped attacker-controlled size headers enable out-of-memory process kills, triggered by malicious pack data during clone/fetch operations.</description><content:encoded><![CDATA[<p>The <code>gix-pack</code> library, a Rust implementation of Git packfile handling, contains multiple denial-of-service (DoS) vulnerabilities. Specifically, unchecked array indexing in delta processing can lead to panics, and uncapped memory allocation based on attacker-controlled size headers allows for out-of-memory (OOM) attacks. These vulnerabilities are triggered when processing malicious pack data during clone or fetch operations.  The affected versions are <code>gix-pack</code> &lt;= 0.68.0. This poses a risk to any application built on gitoxide that clones or fetches from an untrusted remote, including the <code>gix</code> CLI, applications using the <code>gix</code> crate, and CI/CD systems cloning repositories using gitoxide. A crafted pack entry claiming a multi-terabyte size triggers an immediate process kill, which constitutes a single-packet process kill with no recovery.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>An attacker crafts a malicious Git packfile containing either truncated delta data or an entry with an extremely large <code>decompressed_size</code>.</li>
<li>A user or automated system initiates a <code>git clone</code> or <code>git fetch</code> operation from a repository controlled by the attacker.</li>
<li>The <code>gix-pack</code> library attempts to parse the crafted packfile.</li>
<li>If the packfile contains truncated delta data, the <code>apply()</code> function in <code>gix-pack/src/data/delta.rs</code> attempts to access array indices beyond the bounds of the data buffer, leading to a panic. Alternatively, the <code>parse_header_info()</code> function in <code>gix-pack/src/data/entry/decode.rs</code> can also panic due to unchecked indexing.</li>
<li>If the packfile contains an entry with an extremely large <code>decompressed_size</code>, the library attempts to allocate a large buffer using <code>Vec::with_capacity(size as usize)</code> in <code>bytes_to_entries.rs</code> or <code>Vec::resize()</code> in <code>resolve.rs</code>.</li>
<li>The allocation of the excessively large buffer exhausts available memory, triggering an out-of-memory (OOM) condition.</li>
<li>The operating system terminates the process to prevent further memory exhaustion.</li>
<li>The application using <code>gix-pack</code> crashes, resulting in a denial-of-service.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of these vulnerabilities leads to a denial-of-service (DoS) condition. For the panic vulnerability, a small amount of crafted data causes an immediate process abort. For the OOM vulnerability, a single crafted pack entry header causes the process to attempt a multi-terabyte allocation, leading to process termination by the operating system. This can affect various applications and systems, including the <code>gix</code> CLI, applications using the <code>gix</code> crate, and CI/CD systems, potentially disrupting software development workflows. The OOM vector represents a severe risk, as it is a single-packet process kill with no recovery.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade to a patched version of <code>gix-pack</code> when available.</li>
<li>Implement input validation on packfile data before processing to mitigate the OOM vulnerability. Specifically, implement a configurable maximum object size and validate claimed sizes against it before allocation, as suggested in the advisory.</li>
<li>Monitor for process crashes or OOM events related to applications using <code>gix-pack</code>. Deploy the Sigma rule <code>Detect Gix-Pack Uncapped Memory Allocation</code> to identify potential OOM attacks.</li>
<li>Consider blocking or filtering network traffic from untrusted Git repositories to prevent malicious packfiles from reaching vulnerable systems.</li>
</ul>
]]></content:encoded><category domain="severity">medium</category><category domain="type">advisory</category><category>denial-of-service</category><category>git</category><category>gitoxide</category><category>gix-pack</category></item></channel></rss>