Description
9Router is an AI router & token saver. From 0.2.21 until 0.4.44, 9Router used the hardcoded fallback JWT secret 9router-default-secret-change-me in src/app/api/auth/login/route.js, src/middleware.js, and later src/lib/auth/dashboardSession.js, allowing attackers to forge an auth_token cookie when JWT_SECRET was unset. This issue is fixed in version 0.4.44
Published: 2026-07-15
Score: 9.8 Critical
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

9Router is an AI router & token saver. From version 0.2.21 through version 0.4.43 inclusive, the application used a hardcoded fallback JWT secret, 9router-default-secret-change-me, embedded in various source files such as src/app/api/auth/login/route.js, src/middleware.js, and later src/lib/auth/dashboardSession.js. When the environment variable JWT_SECRET is unset, the system falls back to this secret, allowing attackers to forge an auth_token cookie. A forged token signed with the known secret permits an attacker to impersonate any user, bypassing authentication and gaining unauthorized access to privileged functionality and data. The flaw, a classic instance of CWE‑798, was remedied in release 0.4.44, which removed the hardcoded fallback secret.

Affected Systems

The issue affects decolua's 9Router releases from version 0.2.21 through 0.4.43 inclusive. Version 0.4.44 introduces a fix that removes the hardcoded fallback secret. All deployments of the affected versions on any operating environment are vulnerable when the JWT_SECRET is not explicitly set.

Risk and Exploitability

With a CVSS score of 9.8 the vulnerability is considered critical. The EPSS indicates that exploit Likelihood is currently very low (<1%), and the vulnerability is not listed in the CISA KEV catalog. Based on the description, the likely attack vector is network‑based: an attacker who can set or modify the HTTP cookie for the 9Router domain can inject the forged token and bypass authentication. The vulnerability does not require privileged code execution or kernel‑level access; it only requires the ability to serve crafted requests to an exposed 9Router instance.

Generated by OpenCVE AI on July 31, 2026 at 02:45 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update 9Router to version 0.4.44 or later, which removes the hardcoded fallback secret.
  • Ensure that the environment variable JWT_SECRET is defined and set to a strong, random value in all deployments. This prevents the fallback from being used.
  • If an immediate upgrade is not possible, mandate setting JWT_SECRET before starting the application; this will stop the hardcoded secret from being utilized and mitigate the authentication bypass until a patch can be applied.

Generated by OpenCVE AI on July 31, 2026 at 02:45 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-jphh-m39h-6gwx 9router's Hardcoded Default fallback JWT Secret Allows Authentication Bypass
History

Thu, 16 Jul 2026 19:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'poc', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Wed, 15 Jul 2026 23:45:00 +0000

Type Values Removed Values Added
First Time appeared Decolua
Decolua 9router
Vendors & Products Decolua
Decolua 9router

Wed, 15 Jul 2026 21:00:00 +0000

Type Values Removed Values Added
Description 9Router is an AI router & token saver. From 0.2.21 until 0.4.44, 9Router used the hardcoded fallback JWT secret 9router-default-secret-change-me in src/app/api/auth/login/route.js, src/middleware.js, and later src/lib/auth/dashboardSession.js, allowing attackers to forge an auth_token cookie when JWT_SECRET was unset. This issue is fixed in version 0.4.44
Title 9Router: Hardcoded Default fallback JWT Secret Allows Authentication Bypass
Weaknesses CWE-798
References
Metrics cvssV3_1

{'score': 9.8, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-07-16T18:55:46.479Z

Reserved: 2026-05-29T14:35:45.903Z

Link: CVE-2026-49352

cve-icon Vulnrichment

Updated: 2026-07-16T18:55:04.820Z

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-07-31T03:00:06Z

Weaknesses
  • CWE-798

    Use of Hard-coded Credentials