$ cat research/9router-api-security.md
9Router API Security Research
One coordinated open-source review resulting in three CVE IDs. The work focused on authentication boundaries, authorization checks, secret handling, and privacy risks in AI request data.
$ git log disclosure/
Public disclosure timeline
June 13, 2026
GitHub Security Advisory published
GHSA-vjc7-jrh9-9j86 published with newnol credited as the reporter.
July 13, 2026
Three CVE records published
CVE-2026-59801, CVE-2026-62327, and CVE-2026-62328 became publicly verifiable.
August 5, 2026
Public references verified
Dates, scores, attribution, and upstream links were rechecked for this case study.
Research approach
- 1Mapped dashboard API routes and identified operations handling provider credentials, usage data, and request history.
- 2Reviewed server-side route handlers for authentication, authorization, ownership checks, and secret masking.
- 3Reproduced findings in a controlled local environment and documented impact without targeting third-party deployments.
- 4Coordinated publication through the project security advisory and public CVE records.
Scope and focus
public verification
Verify the attribution and records
The upstream advisory identifies newnol as the reporter. The three CVE records below provide independent public references for the assigned IDs, affected versions, weakness mappings, and CNA scoring.
$ ls findings/
Assigned CVE findings
These records belong to the same coordinated research case. Each card links to the public NVD entry and the upstream GitHub Security Advisory.
Unauthenticated provider-management API access
/api/providers/*
Summary
Provider-management routes accepted requests without authentication, allowing remote users to enumerate, create, modify, or delete provider connections.
Impact
An attacker could expose partial credentials and OAuth metadata, redirect AI traffic through attacker-controlled providers, alter existing connections, or delete providers and cause service disruption.
Root cause
Sensitive Next.js API routes performed provider CRUD operations without centralized server-side authentication and authorization checks.
affected
9Router <= 0.4.41
weakness
CWE-306
Recommended remediation
- Require authentication and authorization for every provider-management operation.
- Return only the minimum provider metadata needed by the dashboard.
- Audit provider changes and apply least-privilege access controls.
Plaintext AI provider API-key exposure
/api/usage/stats
Summary
An unauthenticated usage endpoint returned complete provider API keys together with usage and billing metadata.
Impact
Exposed keys could be reused against connected AI providers, leading to unauthorized consumption, billing fraud, and quota exhaustion.
Root cause
The usage API lacked authentication and returned full secret values instead of masked identifiers.
affected
9Router <= 0.4.41
weakness
CWE-306 · CWE-522
Recommended remediation
- Protect all usage endpoints with server-side authentication.
- Never include full API keys or OAuth secrets in API responses.
- Rotate credentials that may have been exposed and retain only masked key fingerprints.
AI request-log and conversation-history disclosure
/api/usage/request-logs and /api/usage/request-details/*
Summary
Unprotected usage routes exposed request metadata and complete AI conversation histories to unauthenticated users.
Impact
The disclosed records could contain system prompts, user messages, assistant responses, tool calls, and user email addresses.
Root cause
Request-log and request-detail handlers lacked authentication and ownership checks before returning sensitive session data.
affected
9Router <= 0.4.41
weakness
CWE-359 · CWE-862
Recommended remediation
- Require authentication for all request-history endpoints.
- Enforce per-user or per-tenant ownership checks before returning records.
- Minimize retained conversation content and redact sensitive fields in logs.
CVSS v4 scores shown on this page were assigned by VulnCheck CNA. The wording “CNA CVSS” distinguishes those public CNA scores from any future independent NVD assessment.
Shared root cause
Sensitive Next.js API handlers did not consistently enforce server-side authentication, authorization, ownership checks, and secret masking. Dashboard protection alone is not a security boundary when API routes remain directly reachable.
The durable fix is centralized authentication for sensitive API namespaces, explicit resource authorization, tenant isolation, and response minimization for credentials and conversation data.
Responsible research
The research shown here concerns open-source software and was reproduced in a controlled environment. No third-party deployment, private credential, or user conversation is included on this site.
Public content is limited to impact, root cause, defensive remediation, and links to already published advisory records.