<?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/" xmlns:webfeeds="http://webfeeds.org/rss/1.0"><channel><title>Llm-Proxy - CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/tags/llm-proxy/</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>Fri, 28 Aug 2026 21:15:37 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/tags/llm-proxy/feed.xml" rel="self" type="application/rss+xml"/><image><url>https://feed.craftedsignal.io/favicon-32x32.png</url><title>CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/</link><width>32</width><height>32</height></image><webfeeds:icon>https://feed.craftedsignal.io/favicon.svg</webfeeds:icon><item><title>9router Authentication Bypass and SSRF via Host Header Spoofing</title><link>https://feed.craftedsignal.io/briefs/2026-08-9router-auth-bypass/</link><pubDate>Fri, 28 Aug 2026 21:15:37 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-08-9router-auth-bypass/</guid><description>An authentication bypass in 9router 0.4.80 and earlier allows remote attackers to spoof the 'Host' header, gaining unauthorized access to API proxy endpoints, enabling quota theft via AI relay and server-side request forgery (SSRF).</description><content:encoded><![CDATA[<p>9router versions 0.4.80 and earlier contain a critical authentication bypass vulnerability (CVE-2026-55641) located in the application's request guard logic. The <code>isLocalRequest</code> function determines if a request should be exempt from API authentication by inspecting the client-controlled <code>Host</code> header rather than the actual socket peer address. Because 9router defaults to binding to <code>0.0.0.0</code> (all interfaces) while misleadingly reporting the service as bound to &quot;localhost,&quot; remote attackers can reach the service and spoof <code>Host: localhost</code> to be treated as local users.</p>
<p>This bypass grants unauthenticated access to the <code>/v1</code> proxy. Attackers can leverage this to exhaust the victim's paid AI provider quotas (AI relay) or conduct SSRF attacks. The SSRF primitive is particularly severe as the <code>/v1/search</code> endpoint allows arbitrary configuration of the outbound <code>baseUrl</code> via request parameters, enabling attackers to target internal services or cloud metadata endpoints and receive the response directly in the JSON output. The issue is exacerbated by default settings that lack mandatory API key requirements for non-loopback traffic.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>Attacker identifies an internet-facing 9router instance listening on port 20128.</li>
<li>Attacker sends a specially crafted HTTP request to the target <code>/v1/search</code> or <code>/v1/messages</code> endpoint.</li>
<li>Attacker sets the HTTP <code>Host</code> header to <code>localhost</code> to bypass the <code>isLocalRequest</code> guard check.</li>
<li>9router middleware incorrectly validates the request as originating from a local source due to the spoofed header.</li>
<li>The application grants the request bypass-level access, skipping the <code>hasValidApiKey</code> check.</li>
<li>For search requests, the attacker injects an arbitrary <code>baseUrl</code> (e.g., <code>http://169.254.169.254/</code>) via the <code>provider_options</code> body parameter.</li>
<li>9router's <code>handleSearchCore</code> performs a server-side <code>fetch</code> to the attacker-supplied URL.</li>
<li>The JSON response from the internal resource is reflected back to the attacker, completing the SSRF or unauthorized relay chain.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation allows remote, unauthenticated attackers to perform unauthorized actions on behalf of the victim. This results in the depletion of financial credits or usage quotas on connected AI provider accounts, the potential exfiltration of prompts and data via the AI relay, and the ability to map internal networks or exfiltrate cloud metadata via the SSRF primitive. Any deployment of 9router reachable over a network is vulnerable to this attack.</p>
<h2 id="recommendation">Recommendation</h2>
<ol>
<li>Upgrade to 9router version 0.5.2 or later immediately to patch the authentication logic.</li>
<li>If an immediate upgrade is not possible, modify the 9router configuration to bind only to <code>127.0.0.1</code> and ensure it is not reachable from untrusted networks.</li>
<li>Implement network-level access control (firewall or VPN) to restrict access to port 20128 to known, authorized IP addresses.</li>
<li>Enable mandatory API key authentication for all requests in the 9router settings, regardless of perceived request origin.</li>
<li>Use the provided POC methods against lab environments to verify that incoming requests are correctly rejected when the <code>Host</code> header does not match the actual connection source.</li>
</ol>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>authentication-bypass</category><category>ssrf</category><category>api-security</category><category>web-vulnerability</category><category>authorization-bypass</category><category>llm-proxy</category></item></channel></rss>