Skip to main content

go-chi chi EUVDEUVD-2026-112387

| CVE-2026-118681 MEDIUM
Authentication Bypass Using an Alternate Path or Channel (CWE-288)
2026-10-28 disclosure@vulncheck.com GHSA-r83h-4mhv-9p8m
6.3
CVSS 4.0 · Vendor: vulncheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Identify mounted auth route sharing a suffix with an outer public route
  2. Delivery
    Send unauthenticated GET /{tenant}/data/{id}
  3. Exploit
    SupressNotFound preflight Match mutates live routing context
  4. Execution
    Dispatch falls through to outer public handler retaining mount parameter
  5. Impact
    Handler returns tenant-scoped data, mounted auth middleware skipped

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Alternate path authentication
Exploitation Conditions

Exploitation requires all of the following application-specific prerequisites, not merely use of chi: (1) middleware.SupressNotFound must be enabled on the outer router; (2) a mounted subrouter (e.g. via Router.Route("/{tenant}", ...)) protected by authentication middleware whose child path suffix collides with (3) an explicit outer public route of the same suffix (e.g. GET /data/{id}); and (4) that outer public handler must reuse a tenant-aware handler that trusts the retained mount parameter read via Request.PathValue / chi.URLParam. When these align, an unauthenticated (PR:N) remote request to the mounted path has its routing context mutated by the preflight Match so the public handler runs with the retained tenant parameter, skipping the mounted auth middleware. LIMITING FACTORS: the attack requirement (AT:P) is substantial - an outer route that independently enforces authorization, or an absence of a colliding public suffix handler, eliminates the impact (the advisory's mounted-only control returns 404, not a bypass); impact is confined to disclosure of tenant-scoped read data. Runtime confirmation exists only for v5.4.0.

Impact

Signals are mixed and point to a conditional, medium-severity authentication bypass rather than a broad emergency. The supplied CVSS 4.0 base score is 6.3 (medium) with vector AV:N/AC:L/AT:P/PR:N/UI:N and only limited confidentiality impact (VC:L, VI:N, VA:N, no subsequent-system impact), which aligns with the mechanism: an unauthenticated network request can reach an outer public handler and read tenant-scoped data, but cannot modify or deny it. The SSVC-style decision label supplied is 'this_month' (not act_now/emergency), consistent with a real but non-urgent priority. No EPSS probability was provided in the input, so widespread-exploitation likelihood cannot be quantified from this data. The CVE is NOT listed in CISA KEV and there is no claim of active exploitation; however, a working proof-of-concept reproduction (an httptest harness with observed output) is published in the go-chi GHSA advisory for v5.4.0, so exploit knowledge is public. The AT:P metric (attack requirements present) is the key honest caveat: exploitation is not against arbitrary chi deployments - it requires a specific routing collision plus an outer public handler that reuses a tenant-aware handler trusting the retained mount parameter. The advisory itself states that an outer route independently enforcing authorization would not be impacted. Net: a genuine authentication-bypass bug in a very widely used Go router, but real-world risk is gated by application-specific configuration, so this is a medium priority to patch promptly rather than a high-CVSS, mass-exploitable crisis.

Exploit ScenarioDerived

A multi-tenant Go service built on chi mounts an authenticated subrouter at /{tenant}/data/{id} and also exposes a public /data/{id} route backed by the same tenant-aware handler, with middleware.SupressNotFound enabled on the outer router. An unauthenticated attacker requests /acme/data/42; the SupressNotFound preflight Match mutates the live routing context so the outer public handler runs while retaining tenant=acme, returning acme's tenant-scoped resource without any token. A published working reproduction in the GHSA advisory demonstrates exactly this (401 becomes 200 once SupressNotFound is enabled), verified against chi v5.4.0.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 28, 2026

Authentication bypass in go-chi chi through 5.4.0 lets an unauthenticated remote request reach an outer public route instead of an authenticated mounted subrouter when middleware.SupressNotFound is enabled, the mounted path suffix collides with an explicit outer public route, and that outer handler trusts the retained tenant mount parameter. The issue is CWE-288 and the fixed release is 5.5.0. The upstream advisory includes a reproduction harness against v5.4.0; no CISA KEV confirmation is provided, and the assessed CVSS 3.1 vector is AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N, reflecting the substantial application-specific prerequisites.

RemediationAI

Upgrade to go-chi chi v5.5.0, the fixed release identified in the package data; the GHSA (https://github.com/go-chi/chi/security/advisories/GHSA-rqrp-8cg2-5958) and VulnCheck advisory (https://www.vulncheck.com/advisories/go-chi-chi-before-5.5.0-authentication-bypass-via-supressnotfound-middleware) are the supplied references. The supplied data does not list a separate vendor workaround. If upgrade is not immediate, review whether the application meets the documented prerequisites: middleware.SupressNotFound enabled on the outer router, an authenticated mounted subrouter path suffix that collides with an explicit outer public route, and an outer public handler that trusts the retained mount parameter via Request.PathValue or chi.URLParam. The advisory states an outer route that independently enforces authorization would not have the demonstrated impact; disabling SupressNotFound removes the preflight Match behavior but changes the middleware's 404-suppression semantics; removing the suffix collision or adding independent authorization to the outer handler addresses the demonstrated path but may alter public endpoint behavior. These are configuration-specific compensating measures, not a substitute for the 5.5.0 upgrade.

Affected VersionsENISA

chi 0 <5.5.0

Affected Packages

euvd chi fix: 5.5.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

go-chi chi is a lightweight Go HTTP router. middleware.SupressNotFound is intended to suppress 404 responses; in the affected versions it retrieves the live chi.RouteContext and calls Match, which is documented to mutate that context. When the preflight match descends into a mounted subrouter, the mount parameter remains in URLParams and the child suffix is placed in RoutePath; the subsequent dispatch uses the changed path against the outer router. If an outer public route has the same suffix, its handler runs and the mounted child's authentication middleware is skipped, and the retained tenant parameter can be read via Request.PathValue or chi.URLParam. This is CWE-288, an alternate path/channel authentication bypass. Runtime confirmation is for v5.4.0; the same SupressNotFound implementation was found by source comparison in v5.0.12, v5.1.0, v5.2.0, and v5.3.0, though those older versions were not run. The assessed impact is limited to disclosure of tenant-scoped read data; an outer handler that independently enforces authorization, or the absence of a colliding public suffix route, eliminates the demonstrated impact.

Know when Go gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (vulncheck) PRIMARY 6.3 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
vuln.today AI 3.7 LOW

Unauthenticated network request (PR:N/AV:N/UI:N) but requires a specific routing collision and shared tenant-aware public handler (AC:H); only tenant-scoped read disclosure, so C:L and I:N/A:N.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N
4.0 AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (vulncheck).

CVSS VectorVendor: vulncheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Oct 28, 2026 - 20:04 EUVD
CVE Published
Oct 28, 2026 - 19:17 cve.org
MEDIUM 6.3

DescriptionCVE.org

go-chi chi before 5.5.0 contains an authentication bypass in middleware.SupressNotFound, which calls Match with the live routing context and leaves a mounted router's parameter and child suffix in place for dispatch against the outer router. Unauthenticated attackers can request a mounted path whose suffix matches an outer public route, skipping the mounted authentication middleware and retrieving tenant-scoped data when that outer handler trusts the retained mount parameter.

Threat Intelligence Overview

Prevalence
High
go-chi/chi is among the most widely used Go HTTP routers in production services
Social Media
1
Sightings
Data Quality
3 sources
Confidence: Low

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS N/A
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact· derived
Medium

Priority Score

32
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

More in Go

View all
CVE-2023-44487 HIGH POC
7.5 Oct 10

Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour

CVE-2016-5386 HIGH
8.1 Jul 19

The net/http package in Go through 1.6 does not attempt to address RFC 3875 section 4.1.18 namespace conflicts and there

CVE-2025-68121 CRITICAL POC
10.0 Feb 05

Critical certificate validation bypass in Go crypto/tls during session resumption. If ClientCAs or RootCAs fields are mu

CVE-2019-14809 CRITICAL POC
9.8 Aug 13

net/url in Go before 1.11.13 and 1.12.x before 1.12.8 mishandles malformed hosts in URLs, leading to an authorization by

CVE-2026-90942 CRITICAL POC
9.3 Sep 14

Casdoor through 4.4.0 exposes its instance-wide built-in JWT signing private key unmasked through the /api/get-certs and

CVE-2026-101090 CRITICAL POC
9.3 Sep 27

Host header injection in Nezha 2.2.3's OAuth2 redirect endpoint (/api/v1/oauth2/{provider}) allows an unauthenticated re

CVE-2026-78428 HIGH POC
8.8 Sep 17

Session cross-wiring in SUSE NeuVector before 5.6.1 allows an unauthenticated remote attacker to obtain another user's a

CVE-2026-92791 HIGH POC
8.7 Sep 16

Unauthenticated path traversal in Uber Kraken through 0.1.29 allows remote attackers to read files outside the configure

CVE-2018-7187 HIGH POC
8.8 Feb 16

The "go get" implementation in Go 1.9.4, when the -insecure command-line option is used, does not validate the import pa

CVE-2026-16651 HIGH POC
8.7 Sep 21

Denial of service in Temporal Server allows an authenticated caller holding at least namespace read permission to crash

CVE-2026-82405 HIGH POC
8.7 Sep 23

Account takeover in Klever-Go's KleverUpdateAccountPermission built-in (all versions prior to 1.7.20) allows an attacker

CVE-2026-82409 HIGH POC
8.4 Sep 23

Maliciously crafted on-chain account names processed by Klever-Go prior to 1.7.20 are spliced into Elasticsearch _bulk r

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy