<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://cve.radiocsirt.org</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Tue, 06 Oct 2026 07:49:07 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-50024 — GitHacker: Path traversal in ref/hash parsing enables existence oracle and hex-fragment exfiltration via a malicious .g…</title>
      <link>https://cve.radiocsirt.org/vuln/cve-2026-50024</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; WangYihang GitHacker&lt;/p&gt;
&lt;p&gt;GitHacker is a tool that restores Git repositories from exposed .git directories. In 1.1.7 and earlier, add_head_file_tasks parses an attacker-controlled ref path from .git/HEAD and joins unvalidated path segments onto temp_dst/.git/logs/, allowing a malicious server to make GitHacker read an arbitrary local file when a victim runs the tool against the server&amp;#39;s URL. add_hashes_parsed then scans the file for 40-character hexadecimal substrings and requests each match through .git/objects using the first two characters and remaining characters as path components, creating an attacker-observable existence oracle and disclosing matching hexadecimal fragments. Complete file contents are not returned, and the add_folder and add_task write path in shipped version 1.1.7 does not permit an escape. This issue is fixed in repository version 1.1.9.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; WangYihang GitHacker&lt;/p&gt;
&lt;p&gt;GitHacker is a tool that restores Git repositories from exposed .git directories. In 1.1.7 and earlier, add_head_file_tasks parses an attacker-controlled ref path from .git/HEAD and joins unvalidated path segments onto temp_dst/.git/logs/, allowing a malicious server to make GitHacker read an arbitrary local file when a victim runs the tool against the server&amp;#39;s URL. add_hashes_parsed then scans the file for 40-character hexadecimal substrings and requests each match through .git/objects using the first two characters and remaining characters as path components, creating an attacker-observable existence oracle and disclosing matching hexadecimal fragments. Complete file contents are not returned, and the add_folder and add_task write path in shipped version 1.1.7 does not permit an escape. This issue is fixed in repository version 1.1.9.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/cve-2026-50024</guid>
    </item>
    <item>
      <title>GHSA-hr3m-4qwq-3mgc — GitHacker: Path traversal in ref/hash parsing enables existence oracle and hex-fragment exfiltration via malicious .git…</title>
      <link>https://cve.radiocsirt.org/vuln/ghsa-hr3m-4qwq-3mgc</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: githacker&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;GitHacker through 1.1.7 did not validate path segments parsed from attacker-controlled `.git/HEAD` before joining them onto its output directory. A malicious server could coerce GitHacker into reading arbitrary local files. Contents do not stream back wholesale, but the recovery loop turns any 40-character hex substring into an outbound HTTP `GET` — an existence oracle for arbitrary paths plus hex-fragment exfiltration of file contents.&lt;/p&gt;
&lt;p&gt;## Details&lt;/p&gt;
&lt;p&gt;### Vulnerability&lt;/p&gt;
&lt;p&gt;GitHacker rebuilds a remote `.git/` by fetching files into `temp_dst`. Two functions derived filesystem paths from server-controlled content:&lt;/p&gt;
&lt;p&gt;- `add_head_file_tasks` reads the downloaded `.git/HEAD`, parses `ref: &amp;lt;ref-path&amp;gt;`, and joins the raw ref-path onto `temp_dst/.git/logs/` before reading the resulting file.
- `add_hashes_parsed` scans any file it reads for 40-character hex substrings and emits `GET .git/objects/&amp;lt;sha[0:2]&amp;gt;/&amp;lt;sha[2:]&amp;gt;` for each one — onto the attacker&amp;#39;s server and into the local output tree.&lt;/p&gt;
&lt;p&gt;Pre-fix, `add_head_file_tasks` did not validate the ref segments. A malicious `.git/HEAD` of&lt;/p&gt;
&lt;p&gt;```
ref: ../../../../../../etc/passwd
```&lt;/p&gt;
&lt;p&gt;caused `add_head_file_tasks` to traverse out of `temp_dst` and read `/etc/passwd`. The bytes flowed into `add_hashes_parsed`, which emitted one outbound HTTP request per 40-char-hex match — observable on the attacker&amp;#39;s logs.&lt;/p&gt;
&lt;p&gt;### Impact&lt;/p&gt;
&lt;p&gt;PR #65 originally classified this as arbitrary local file read. Joint analysis during coordinated disclosure narrowed th…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: githacker&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;GitHacker through 1.1.7 did not validate path segments parsed from attacker-controlled `.git/HEAD` before joining them onto its output directory. A malicious server could coerce GitHacker into reading arbitrary local files. Contents do not stream back wholesale, but the recovery loop turns any 40-character hex substring into an outbound HTTP `GET` — an existence oracle for arbitrary paths plus hex-fragment exfiltration of file contents.&lt;/p&gt;
&lt;p&gt;## Details&lt;/p&gt;
&lt;p&gt;### Vulnerability&lt;/p&gt;
&lt;p&gt;GitHacker rebuilds a remote `.git/` by fetching files into `temp_dst`. Two functions derived filesystem paths from server-controlled content:&lt;/p&gt;
&lt;p&gt;- `add_head_file_tasks` reads the downloaded `.git/HEAD`, parses `ref: &amp;lt;ref-path&amp;gt;`, and joins the raw ref-path onto `temp_dst/.git/logs/` before reading the resulting file.
- `add_hashes_parsed` scans any file it reads for 40-character hex substrings and emits `GET .git/objects/&amp;lt;sha[0:2]&amp;gt;/&amp;lt;sha[2:]&amp;gt;` for each one — onto the attacker&amp;#39;s server and into the local output tree.&lt;/p&gt;
&lt;p&gt;Pre-fix, `add_head_file_tasks` did not validate the ref segments. A malicious `.git/HEAD` of&lt;/p&gt;
&lt;p&gt;```
ref: ../../../../../../etc/passwd
```&lt;/p&gt;
&lt;p&gt;caused `add_head_file_tasks` to traverse out of `temp_dst` and read `/etc/passwd`. The bytes flowed into `add_hashes_parsed`, which emitted one outbound HTTP request per 40-char-hex match — observable on the attacker&amp;#39;s logs.&lt;/p&gt;
&lt;p&gt;### Impact&lt;/p&gt;
&lt;p&gt;PR #65 originally classified this as arbitrary local file read. Joint analysis during coordinated disclosure narrowed th…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/ghsa-hr3m-4qwq-3mgc</guid>
    </item>
  </channel>
</rss>
