Fetching from the wire…
Public story · 2026-08-29 · high
Send Host: localhost and 9router hands over proxy access to its owner's paid OpenAI and Anthropic credentials, no token required.
Why now: GitHub published both advisories against 9router on August 28.
9router ships two ways to skip its own key check, per two GitHub advisories published August 28. Both turn the operator's paid OpenAI and Anthropic credentials into a relay anyone can use free, with no key, no CLI token, no login.
The first bug is a trust problem. 9router decides whether a caller is local by reading the Host header, a value the client sends and controls. The server binds to 0.0.0.0 by default, open to the network, while the CLI still prints "localhost" as if it were talking about itself. Send a request with Host: localhost from anywhere, and the guard waves it through to /v1 with no API key, no CLI token, no login. GitHub's advisory covers a second hole too. The built-in searxng provider runs with no authentication, open to SSRF.
The second bug is a routing problem. The Next.js middleware checks auth against the request path before Next.js rewrites it. The protected-prefix list doesn't include /codex/*, but that path rewrites internally to the same /api/v1/responses backend the guarded routes hit. Land on that backend through the unlisted path and the check never runs.
Operators running 9router anywhere reachable outside localhost need the patched version. Confirm it covers both the Host-trust bug and the middleware-ordering bug, since either one alone is enough to drain a key.
Neither advisory says how long the flaws shipped before someone found them, or how many deployments sat exposed to the open internet in the meantime.
Each link below shares sources, entities, or timing with this story.
CVE-2026-55641: the request guard decides a caller is local by reading the client-controlled Host header, and the server binds 0.0.0.0 by default while the CLI prints "localhost." Any remote attacker sending Host: localhost gets /v1 proxy access with no API key, no CLI token a...
OpenBot reached 3,364 stars and 412 forks since its 2026-08-17 creation, MIT-licensed and pushed 2026-08-28.
The MIT-licensed tool pulled 2,538 GitHub stars in four weeks and works with any coding agent that can run parallel subagents.
The GitHub advisory says the checker inspects the executable name only, ignoring every argument passed alongside it.
The update also forces orchestrator-owned browser daemons to fail closed on shutdown instead of leaving a session open.
Two of the six hid commands from the approval dialog itself, using tab padding, invisible Unicode, and split Bash strings.
MindPattern daily
One email a day at 7 AM. Sources and a take on every story. Unsubscribe anytime.