criticalCVSS 10Vulnerability

GHSA-vjc7-jrh9-9j86

--- title: Unauthenticated CRUD on /api/providers and Full API Key Leak via /api/usage/stats product: 9Router version: <= 0.4.41 severity: critical cve_request: true --- ## Summary Multiple critical API security vulnerabilities were discovered in 9Router's Next.js dashboard. The `/api/providers` endpoints lack authentication entirely, allowing anyone to create, read, update, and delete provider connections. Additionally, `/api/usage/stats` exposes full plaintext API keys, and `/api/usage/request-logs` + `/api/usage/request-details` expose all users' request history and full conversation contents (including system prompts, user messages, assistant responses) without authentication. ## Affected Endpoints | Endpoint | Method | Issue | |---|---|---| | `/api/providers` | GET | Lists all provider connections with partial credentials, OAuth tokens, account IDs | | `/api/providers/:id` | GET | Read any single provider detail (IDOR) | | `/api/providers` | POST | Create arbitrary provider connections with attacker-controlled API keys | | `/api/providers/:id` | PUT | Modify any existing provider connection | | `/api/providers/:id` | DELETE | Delete any provider connection | | `/api/usage/stats` | GET | Exposes full plaintext API keys, per-account usage breakdown, cost data | | `/api/usage/request-logs` | GET | Exposes all users' request logs (model, tokens, cost, timestamp, provider) | | `/api/usage/request-details/:id` | GET | Exposes full conversation turns including system prompts, user messages, assistant responses | | `/api/version` | GET | Exposes current version info | | `/api/models` | GET | Exposes full model routing catalog | | `/api/v1/models` | GET | Exposes model list | ## Impact ### Critical: Provider CRUD without authentication An attacker can: 1. **Add a malicious provider** — inject a provider that proxies through their server, capturing all prompts, responses, and API keys routed through 9Router 2. **Modify existing providers** — replace API keys with

Properties

ghsa_id
GHSA-vjc7-jrh9-9j86
severity
critical
summary
9router has unauthenticated CRUD on /api/providers and Full API Key Leak via /api/usage/stats
cvss_score
10
cve_id
GHSA-vjc7-jrh9-9j86
cvss_vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
is_ghsa_only
true
ghsa_published
2026-07-06T21:22:10Z
source_url
https://github.com/advisories/GHSA-vjc7-jrh9-9j86
ghsa_updated
2026-07-06T21:22:11Z

Related Entities (6)

HAS_WEAKNESS (3)

[Weakness]Missing Authorization
[Weakness]Exposure of Sensitive Information to an Unauthorized Actor
[Weakness]Missing Authentication for Critical Function

REPORTED_BY (1)

[Source]GitHub Advisory Database

VULNERABLE_TO (1)

[Software]npm/9router

AFFECTS (1)

[Software]npm/9router

Explore deeper with Ninja Signal's threat intelligence graph

GHSA-vjc7-jrh9-9j86 (CVSS 10) — Ninja Signal Threat Intelligence | Ninja Signal