Impact
The vulnerability exists in the POST /api/provider-nodes/validate endpoint of 9router. It accepts a caller‑supplied baseUrl and performs a server‑side HTTP request after running a guard that only compares host names, never resolves DNS, ignores redirects, and contains an unreachable branch for IPv4‑mapped IPv6 addresses. As a result, every IPv4‑mapped literal, such as http://[::ffff:127.0.0.1]/, passes the filter and reaches the loopback or link‑local metadata space, exposing internal hosts. Additionally, a body from upstream responses that are not 2xx, 401, or 403 is truncated to 200 bytes and returned to the caller, leaking the beginning of internal responses. The caller’s apiKey is also forwarded to the internal target as a Bearer token, providing a potential credential‑stealing vector.
Affected Systems
The affected product is decolua 9router, specifically any instance that exposes the /api/provider-nodes/validate API. The vulnerability is present in all versions of 9router that have not applied the fix from the referenced pull request, and it can be exploited when the endpoint is enabled, whether requireLogin is disabled or a dashboard session is used.
Risk and Exploitability
The CVSS score of 6.3 indicates a moderate impact. EPSS is not currently available and the vulnerability is not listed in the CISA KEV catalog. The attack can be carried out by any user able to send a POST to the endpoint; if requireLogin is disabled, no authentication is required, otherwise an authenticated session is sufficient. Because the guard fails for IPv4‑mapped addresses, an attacker can issue requests to 127.0.0.1, 169.254.0.0/16, or other internal ranges, enabling internal reconnaissance, data exfiltration, or credential leakage via the forwarded apiKey. The vulnerability is relatively straightforward to exploit once the endpoint is reachable.
OpenCVE Enrichment