Response playbooks, investigation guides, and Atomic Red Team tests are Pro-only. Upgrade to unlock the full detection package for CVE-2026-49352.

Upgrade to Pro
CVE-2026-49352

9router Hardcoded Default JWT Secret Authentication Bypass (CVE-2026-49352)

Detects exploitation attempts against 9router (npm package) versions 0.2.21 through 0.4.41, which ship a hardcoded default fallback JWT signing secret (CWE-798). When an operator fails to override the default secret, an attacker can forge arbitrary JWTs (including admin/privileged claims) and bypass authentication entirely. Detection focuses on identifying JWTs signed with the known-public default secret, anomalous authentication success patterns following token forgery, and process/network indicators consistent with public PoC exploitation against 9router deployments.

Vulnerability Intelligence

Public PoC

Affected Software

Vendor
npm
Product
9router
Versions
>= 0.2.21, <= 0.4.41

Weakness (CWE)

Timeline

Disclosed
July 2, 2026

CVSS

9.8
Critical (9.0–10)

CVSS vector not yet published

Read the write-up →

What is CVE-2026-49352 9router Hardcoded Default JWT Secret Authentication Bypass (CVE-2026-49352)?

9router Hardcoded Default JWT Secret Authentication Bypass (CVE-2026-49352) (CVE-2026-49352) maps to the Initial Access and Privilege Escalation and Defense Evasion and Credential Access tactics — the adversary is trying to get into your network in MITRE ATT&CK.

This page provides production-ready detection logic for 9router Hardcoded Default JWT Secret Authentication Bypass (CVE-2026-49352), covering the data sources and telemetry it touches: Application Logs, Authentication Logs. The queries below are rated critical severity at medium confidence, and ship for 7 SIEM platforms — KQL, SPL, Elastic, QRadar, Sumo, YARA-L, LogScale.

MITRE ATT&CK

Tactic
Initial Access Privilege Escalation Defense Evasion Credential Access
Microsoft Sentinel / Defender
kusto
// Requires custom table/ingestion of 9router application/auth logs (AppServiceHTTPLogs or custom Log Analytics table 'NineRouterAuthLog_CL')
let SuspiciousUA = dynamic(["python-requests","curl","jwt_tool","PyJWT"]);
NineRouterAuthLog_CL
| where TimeGenerated > ago(24h)
| where isnotempty(JwtHeaderAlg_s) and JwtHeaderAlg_s in ("HS256","HS384","HS512")
| extend SuspiciousClient = ClientUserAgent_s in~ (SuspiciousUA)
| where AuthResult_s == "success" and (isempty(PriorSessionId_s) or SuspiciousClient)
| project TimeGenerated, SrcIpAddr_s, ClientUserAgent_s, JwtSubject_s, JwtIssuer_s, AuthResult_s, RequestUri_s
| summarize FirstSeen=min(TimeGenerated), LastSeen=max(TimeGenerated), AttemptCount=count() by SrcIpAddr_s, JwtSubject_s, ClientUserAgent_s
| where AttemptCount >= 1

Flags successful authentications to 9router where the JWT was issued/validated without a prior legitimate session, or where the client used tooling commonly associated with JWT forgery PoCs.

critical severity medium confidence

Data Sources

Application Logs Authentication Logs

Required Tables

NineRouterAuthLog_CL

False Positives

  • Legitimate automated API clients using curl/python for integration testing
  • Load balancers or health checks that mimic bot user agents
  • Newly onboarded service accounts without prior session history

Sigma rule & cross-platform mapping

The detection logic for 9router Hardcoded Default JWT Secret Authentication Bypass (CVE-2026-49352) (CVE-2026-49352) above is provided in a vendor-neutral form so you can deploy it on any SIEM. The same logic is shipped here as native KQL (Microsoft Sentinel / Defender), SPL (Splunk), Elastic (Elastic Security (EQL)), QRadar (IBM QRadar (AQL)), Sumo (Sumo Logic CSE), YARA-L (Google Chronicle / SecOps), LogScale (CrowdStrike LogScale (CQL)) queries. In Sigma terms, this detection targets the following logsource:

logsource:
  product: windows

Browse the community-maintained Sigma rules for this technique:


Testing Methodology

Validate this detection against 4 adversary techniques from Atomic Red Team. Each test below lists the behaviour to exercise and the telemetry you should expect to see. Executable commands and cleanup steps are available with Pro.

  1. Test 1Forge JWT using published default secret

    Expected signal: Application auth log entry showing a successful authentication event with HS256 JWT and admin role claim, with no prior session record for the subject.

  2. Test 2Simulate JWT forgery tooling user agent

    Expected signal: HTTP access log and application auth log capturing the jwt_tool user agent string alongside an authentication attempt.

  3. Test 3Validate unrotated default secret configuration

    Expected signal: File access/read event on the 9router config file captured by EDR or file integrity monitoring.

  4. Test 4Windows PowerShell JWT forgery and replay

    Expected signal: Windows PowerShell script block logging (Event ID 4104) capturing the token generation, plus 9router application auth log for the replayed request.

Unlock playbooks & atomic tests with Pro

Get the full detection package for CVE-2026-49352 — response playbook and atomic red team tests, plus investigation guidance and hunting queries.

df00tech Pro — £29/user/month

Response PlaybookInvestigation GuideHunting QueriesAtomic Red Team TestsTuning Guidance

Related Detections