<?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>Guarddog (&gt;= 1.0.0, &lt;= 2.9.0) — CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/products/guarddog--1.0.0--2.9.0/</link><description>Trending threats, MITRE ATT&amp;CK coverage, and detection metadata. Fed continuously.</description><generator>Hugo</generator><language>en</language><managingEditor>hello@craftedsignal.io</managingEditor><webMaster>hello@craftedsignal.io</webMaster><lastBuildDate>Mon, 11 May 2026 14:46:44 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/products/guarddog--1.0.0--2.9.0/feed.xml" rel="self" type="application/rss+xml"/><item><title>GuardDog SSRF and GH_TOKEN Exfiltration via Blind URL Rewrite (CVE-2026-44971)</title><link>https://feed.craftedsignal.io/briefs/2026-05-guarddog-ssrf/</link><pubDate>Mon, 11 May 2026 14:46:44 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-05-guarddog-ssrf/</guid><description>GuardDog versions 1.0.0 through 2.9.0 are vulnerable to Server-Side Request Forgery (SSRF) and potential `GH_TOKEN` exfiltration due to a blind URL rewrite in remote project scanning; an attacker can influence the scanned repository URL to trigger SSRF and capture the `GH_TOKEN` used by GuardDog.</description><content:encoded><![CDATA[<p>GuardDog, a dependency analysis tool, is vulnerable to Server-Side Request Forgery (SSRF) due to a flaw in its remote project scanning functionality. Specifically, versions 1.0.0 through 2.9.0 are affected. The vulnerability arises from the <code>ProjectScanner.scan_remote()</code> function, which blindly rewrites URLs without proper validation. By crafting a malicious URL that includes an attacker-controlled hostname, an attacker can redirect requests to an arbitrary server. This includes the potential for the GuardDog instance to send its configured GitHub credentials (<code>GH_TOKEN</code>) via HTTP Basic Authentication to the attacker&rsquo;s server. This vulnerability allows attackers to steal GitHub PATs, perform SSRF against internal services, and control the content of dependency files. This issue was assigned CVE-2026-44971.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>The attacker identifies a GuardDog instance scanning a repository URL they can influence.</li>
<li>The attacker crafts a malicious repository URL, embedding an attacker-controlled hostname (e.g., <code>http://github@127.0.0.1:18081/owner/repo</code>).</li>
<li>GuardDog&rsquo;s <code>ProjectScanner.scan_remote()</code> function receives the attacker-controlled URL.</li>
<li>The <code>scan_remote()</code> function performs a blind string replacement, transforming &ldquo;github&rdquo; to &ldquo;raw.githubusercontent&rdquo;, resulting in a URL like <code>http://raw.githubusercontent@127.0.0.1:18081/owner/repo/main/requirements.txt</code>.</li>
<li>The <code>requests.get()</code> function interprets the URL as a request to <code>127.0.0.1:18081</code>.</li>
<li>GuardDog includes the configured <code>GH_TOKEN</code> as HTTP Basic Authentication credentials in the request&rsquo;s <code>Authorization</code> header.</li>
<li>The attacker&rsquo;s server receives the request, logging the <code>Authorization</code> header and requested path.</li>
<li>The attacker extracts the <code>GH_TOKEN</code> from the captured <code>Authorization</code> header or influences the dependency file content.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation can lead to several critical consequences. The primary risk is the theft of the GitHub Personal Access Token (PAT) configured in the <code>GH_TOKEN</code> environment variable, allowing the attacker to impersonate the GuardDog instance and access its GitHub resources. Additionally, the SSRF vulnerability enables attacks against internal or localhost services reachable by the scanner, potentially compromising sensitive internal systems. Finally, the attacker can control the content of dependency files, leading to supply chain attacks.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Deploy the Sigma rule <code>Detect GuardDog GH_TOKEN Exfiltration Attempt</code> to identify potential exfiltration attempts by monitoring network connections to non-GitHub hosts using the GitHub token.</li>
<li>Apply the suggested fix outlined in the advisory: parse the input URL, require <code>hostname == &quot;github.com&quot;</code>, validate the path shape, build the raw URL from parsed components instead of string replacement, and never send GitHub credentials to non-GitHub hosts.</li>
<li>Upgrade GuardDog to a version beyond 2.9.0 to remediate CVE-2026-44971.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>ssrf</category><category>credential-access</category><category>github</category></item></channel></rss>