<?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>9router-App (&lt;= 0.5.4) - CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/products/9router-app--0.5.4/</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>Tue, 22 Sep 2026 19:53:39 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/products/9router-app--0.5.4/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>Authentication Bypass in 9router Public LLM API</title><link>https://feed.craftedsignal.io/briefs/2026-09-9router-auth-bypass/</link><pubDate>Tue, 22 Sep 2026 19:53:39 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-09-9router-auth-bypass/</guid><description>9router is vulnerable to an authentication bypass via a spoofable X-9r-Real-Ip HTTP header, allowing unauthenticated attackers to access LLM API endpoints.</description><content:encoded><![CDATA[<p>9router versions 0.5.4 and earlier contain a critical authentication bypass vulnerability (CVE-2026-56681) within the public LLM API layer. The application improperly trusts the user-supplied 'X-9r-Real-Ip' HTTP header to determine if a request originates from the local host (localhost). Under default deployment modes where the intended 'custom-server.js' security wrapper is absent, the application fails to strip or sanitize this header from inbound client traffic. A remote, unauthenticated attacker can inject 'X-9r-Real-Ip: 127.0.0.1' into HTTP requests to 'isLocalRequest()', which then instructs 'canAccessPublicLlmApi()' to waive mandatory API key validation. This vulnerability permits unauthorized access to the LLM provider resources configured by the instance owner, potentially leading to significant financial loss and account abuse.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>Attacker identifies a target 9router instance exposed via port 80/443 without the custom-server.js wrapper.</li>
<li>Attacker crafts an HTTP GET request to a protected endpoint, such as '/api/v1/models'.</li>
<li>Attacker adds the header 'X-9r-Real-Ip: 127.0.0.1' to the HTTP request.</li>
<li>The 9router application receives the request and executes 'isLocalRequest()' in 'src/dashboardGuard.js'.</li>
<li>The application erroneously reads the spoofed header value and returns 'true' for local origin validation.</li>
<li>The logic proceeds to 'canAccessPublicLlmApi()', which identifies the request as 'local' and skips API key authentication.</li>
<li>The application returns '200 OK', granting the attacker access to the model catalog and provider proxy.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation allows unauthenticated remote attackers to bypass API key enforcement on the public LLM API. Impact includes the unauthorized consumption of the instance owner's paid LLM API credits, unauthorized access to configured provider infrastructure, enumeration of private model configurations, and potential abuse of upstream LLM provider accounts.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade 9router to a version that implements secure transport-level source validation, or ensure deployment uses the required 'custom-server.js' wrapper to sanitize headers.</li>
<li>Implement a web application firewall (WAF) rule to block or strip the 'X-9r-Real-Ip' header from any incoming public traffic.</li>
<li>Deploy the Sigma rule below to detect attempts to access the '/api/v1/' path with the malicious header present in web server logs.</li>
<li>Audit current environment configurations to ensure 'custom-server.js' is correctly protecting all public-facing instances.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>web-application</category><category>auth-bypass</category></item></channel></rss>