| 标题 | 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分 (1 月前) |
|---|
| 管理 | 2026-09-30 21時06分 (28 days later) |
|---|
| 状态 | 已接受 |
|---|
| VulDB条目 | 412342 [decolua 9Router 直到 0.5.55 Search Endpoint ssrfGuard.js fetch provider_options.baseUrl 权限提升] |
|---|
| 积分 | 20 |
|---|