Description
9Router is an AI router & token saver. Prior to 0.5.2, 9router validates image URLs by resolving the host before fetching, but open-sse/translator/concerns/image.js performs the later server-side image fetch with a separate DNS resolution. An authenticated attacker with access to the LLM proxy can use a vision-capable model and an attacker-controlled DNS name that first resolves to a public IP and then rebinds to an internal address, allowing server-side requests to internal-only HTTP services. This issue is fixed in version 0.5.2.
Problem types
CWE-367: Time-of-check Time-of-use (TOCTOU) Race Condition
CWE-918: Server-Side Request Forgery (SSRF)
Product status
References
github.com/...router/security/advisories/GHSA-cmhj-wh2f-9cgx
github.com/...router/security/advisories/GHSA-cmhj-wh2f-9cgx
github.com/...ommit/c7d07448c58bec1200741de0b73305b860416b82
github.com/decolua/9router/releases/tag/v0.5.2