| タイトル | decolua 9router 0.5.55 Server-Side Request Forgery |
|---|
| 説明 | A vulnerability has been found in 9Router (an open-source local AI routing gateway, npm packages 9router/9router-app), up to version 0.5.55. The vulnerability exists in the /v1/search endpoint, where the client can override the search provider's service address via the provider_options.baseUrl parameter. The server subsequently makes a fetch() request to this user-supplied URL. Although the project implements SSRF protection (src/shared/utils/ssrfGuard.js), it contains multiple bypasses: DNS resolution is not performed, allowing loopback-resolving domains such as nip.io and localtest.me to pass; IPv6-mapped addresses like [::ffff:127.0.0.1] bypass detection due to URL normalization; a trailing dot (localhost.) avoids suffix matching; and redirects are followed by default without re-validation. An authenticated attacker (or unauthenticated in default requireApiKey=false deployments) can exploit these bypasses to send requests to arbitrary internal/loopback addresses. Additionally, loopback requests made by the server are marked by the middleware as trusted local sources (isLocalRequest=true), granting access to local /v1/* endpoints without credentials. The attack can also exfiltrate API keys of configured search providers via request headers. |
|---|
| ソース | ⚠️ https://github.com/decolua/9router/issues/3714 |
|---|
| ユーザー | CAPT (UID 100253) |
|---|
| 送信 | 2026年09月02日 11:33 (30 日 ago) |
|---|
| モデレーション | 2026年09月30日 21:06 (28 days later) |
|---|
| ステータス | 承諾済み |
|---|
| VulDBエントリ | 412342 [decolua 9Router 迄 0.5.55 Search Endpoint ssrfGuard.js fetch provider_options.baseUrl 特権昇格] |
|---|
| ポイント | 20 |
|---|