Browse / CVEs / CVE-2026-59801
CVE-2026-59801· decolua / 9router
9Router - Unauthenticated LLM Provider API Exposure
criticalseverity
2.6%likelihood of exploitation, next 30 days
86%of all CVEs are less likely
Readycheck to confirm it
9Router through version 0.4.41 contains an unauthenticated access vulnerability caused by missing authentication middleware in Next.js API routes under src/app/api/providers/*, letting remote attackers enumerate, create, modify, or delete provider connections, exploit requires no authentication.
Impact
Remote attackers can expose credentials, redirect traffic, or cause denial of service by deleting provider connections.
Fix
Update to the latest version that includes authentication middleware for API routes.
How to confirm it
Send: GET /api/version
Positive when: status_code == 200 and contains(body, "currentVersion") and compare_versions(lsversion, ">=0.0.1", "<=0.4.41")
Send: GET /api/providers
Positive when: status_code == 200 and contains(content_type, "application/json") and contains_all(body, "authType", "provider", "connections")Run it with nuclei: nuclei -id CVE-2026-59801 -u <target>
The full check
id: CVE-2026-59801
info:
name: 9Router - Unauthenticated LLM Provider API Exposure
author: 0x_Akoko
severity: critical
description: |
9Router through version 0.4.41 contains an unauthenticated access vulnerability caused by missing authentication middleware in Next.js API routes under src/app/api/providers/*, letting remote attackers enumerate, create, modify, or delete provider connections, exploit requires no authentication.
impact: |
Remote attackers can expose credentials, redirect traffic, or cause denial of service by deleting provider connections.
remediation: |
Update to the latest version that includes authentication middleware for API routes.
reference:
- https://github.com/decolua/9router/security/advisories/GHSA-vjc7-jrh9-9j86
- https://nvd.nist.gov/vuln/detail/CVE-2026-59801
metadata:
verified: true
max-request: 2
product: 9router
vendor: decolua
shodan-query: port:20128 http.html:"9Router"
fofa-query: port="20128" || title="9Router"
tags: 9router,unauth,api-exposure,misconfig,api-key-leak
flow: http(1) && http(2)
http:
- raw:
- |
GET /api/version HTTP/1.1
Host: {{Hostname}}
matchers:
- type: dsl
dsl:
- 'status_code == 200'
- 'contains(body, "currentVersion")'
- 'compare_versions(lsversion, ">=0.0.1", "<=0.4.41")'
condition: and
internal: true
extractors:
- type: regex
name: lsversion
internal: true
group: 1
regex:
- '"currentVersion"\s*:\s*"([^"]+)"'
- raw:
- |
GET /api/providers HTTP/1.1
Host: {{Hostname}}
matchers:
- type: dsl
dsl:
- 'status_code == 200'
- 'contains(content_type, "application/json")'
- 'contains_all(body, "authType", "provider", "connections")'
condition: andReferences
- https://github.com/decolua/9router/security/advisories/GHSA-vjc7-jrh9-9j86
- https://nvd.nist.gov/vuln/detail/CVE-2026-59801
Use this check only on systems you are authorised to test. Where the data comes from