Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain namespaced RBAC on shared Gateway
-
DeliveryCreate AuthenticationFilter CRD with malicious realm
-
ExploitAttach filter to HTTPRoute/GRPCRoute
-
ExecutionController renders unescaped realm, breaking out of location block
-
PersistInjected directives execute in shared data-plane config
-
ImpactRead co-tenant secrets, SA token, or SSRF/route hijack
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Special element neutralization
|
| Exploitation Conditions | Requires a MULTI-TENANT deployment where one NGINX Gateway Fabric data plane / Gateway is shared across namespaces, AND an attacker holding namespaced RBAC permissions to create an AuthenticationFilter CRD and attach it (via spec.basic.realm or spec.jwt.realm) to an HTTPRoute or GRPCRoute bound to that shared Gateway. The injectable surface is specifically the realm field rendered verbatim into auth_basic "<realm>";. Limiting factors: exploitation is impossible without valid authenticated namespaced credentials/RBAC (PR:L); single-tenant or per-tenant-dedicated Gateway deployments do not expose cross-tenant impact; the issue is control-plane only with no data-plane exposure; and End-of-Technical-Support versions are explicitly not evaluated. No end-user interaction (UI:N) is needed. |
| Impact | This is a credible, above-average-priority control-plane vulnerability in multi-tenant deployments, but not an emergency for most operators. The F5-provided CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N, VC:H/VI:H/VA:H) scores 8.7 (High) and is internally consistent with the description: a network-reachable Kubernetes control-plane operation, low complexity, and low-but-nonzero privileges (PR:L - the attacker must already hold namespaced credentials able to create/attach AuthenticationFilter CRDs). CWE-76 (improper neutralization of equivalent special elements) accurately captures the quote/brace-breakout config injection into the shared nginx.conf. No EPSS score was provided, this CVE is NOT in CISA KEV, and no public POC was supplied - so exploitation status is 'no public exploit identified at time of analysis'. The gap between a high CVSS and the absence of any exploitation signal suggests this is a serious-but-not-yet-weaponized issue whose real risk is tightly bounded by deployment model: it only matters where a single shared Gateway serves multiple untrusted tenants, which the description itself frames as a control-plane-only (no data-plane exposure) tenant-isolation break. Note one tension worth verifying with the vendor: the 4.0 vector sets subsequent-system impact to N (SC:N/SI:N/SA:N), yet the described impact (reading OTHER tenants' secrets, hijacking OTHER tenants' routes, stealing the pod ServiceAccount token) is precisely a cross-tenant/cross-authority effect that a scope-aware reading would elevate. |
| Exploit ScenarioDerived | A tenant with namespaced RBAC rights on a cluster whose NGINX Gateway Fabric data plane is shared across tenants creates an AuthenticationFilter CRD and attaches it to an HTTPRoute (or GRPCRoute) on the shared Gateway. They set spec.basic.realm (or spec.jwt.realm) to a value that closes the auth_basic "..."; directive and the enclosing location {} block, then appends attacker-chosen NGINX directives (e.g. a proxy_pass for SSRF, or a block mounting/reading co-tenant secrets and the ServiceAccount token). No public exploit code is known, and AC:L/PR:L mean the attack is technically simple once the attacker holds valid namespaced credentials on a shared Gateway. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv2 – Oct 14, 2026
Directive injection in NGINX Gateway Fabric lets an authenticated namespaced tenant escape the auth_basic "<realm>"; quoting rendered into a shared data-plane nginx.conf and inject arbitrary NGINX directives. Exploitation requires a multi-tenant deployment in which several namespaces share one Gateway/data plane, plus namespaced RBAC to create an AuthenticationFilter CRD and attach it via spec.basic.realm or spec.jwt.realm to an HTTPRoute or GRPCRoute bound to that Gateway (CVSS vector shows PR:L and UI:N, so valid authenticated credentials are required and no user interaction is needed). The impact is control-plane only, with no data-plane exposure, but a successful attacker could read co-located tenants' mounted secrets, perform SSRF through proxy_pass, read the pod ServiceAccount token, or hijack other tenants' routes; no public exploit code has been identified at time of analysis, and the issue is not confirmed actively exploited (CISA KEV).
Earlier versions of this analysis (1)
Configuration injection in NGINX Gateway Fabric allows an authenticated Kubernetes user with permission to create AuthenticationFilter custom resources to escape the quoted auth_basic realm directive and inject arbitrary NGINX directives into a shared Gateway's data-plane nginx.conf, potentially enabling cross-tenant secret readout, SSRF via proxy_pass, ServiceAccount token theft, or route hijacking. All versions are affected (CPE wildcard); exploitation requires RBAC to create the CRD, attachment to an HTTPRoute/GRPCRoute, and a shared multi-tenant Gateway-deployments with dedicated Gateways are not exposed, and there is no unauthenticated data-plane trigger. No public exploit identified at time of analysis.
RemediationAI
Apply the fix from F5's advisory K000162609 (https://my.f5.com/manage/s/article/K000162609); an exact patched version is not identified in the available data, so confirm the specific fixed release and upgrade NGINX Gateway Fabric in that advisory before redeploying. If an immediate upgrade is not possible, the highest-value compensating control is architectural: stop sharing a single Gateway/data plane across tenants and give each tenant its own Gateway instance, which removes the cross-tenant blast radius entirely at the cost of additional controller and data-plane resource consumption. In parallel, tighten RBAC and admission so that only trusted cluster administrators can create or modify AuthenticationFilter resources or attach them to routes on a shared Gateway - enforcing this with OPA Gatekeeper or Kyverno policies that deny AuthenticationFilter objects from untrusted namespaces, or that validate spec.basic.realm and spec.jwt.realm against a strict allowlist pattern rejecting quotes, braces, semicolons, and newlines. Note the trade-off that such admission rules break tenant self-service for authentication configuration. As detection, monitor generated nginx.conf for unexpected directives outside the expected auth_basic/auth_jwt blocks and audit AuthenticationFilter create/update events, especially across namespaces. End-of-Technical-Support releases are not evaluated by the vendor, so plan migration to a supported version rather than relying on an EoTS backport.
Affected VersionsENISA
Affected Packages
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
NGINX Gateway Fabric is F5's Kubernetes Gateway API implementation: a Go control plane watches Gateway API resources (Gateway, HTTPRoute, GRPCRoute) plus its own AuthenticationFilter CRD and translates them into nginx.conf for the shared NGINX data plane. The flaw is a CWE-76 improper-neutralization-of-equivalent-special-elements defect: the spec.basic.realm and spec.jwt.realm values are written verbatim, unescaped and unvalidated, into the directive auth_basic "<realm>"; inside a location {} block. Because the realm is not escaped, a crafted value can close the double quote and the enclosing brace, terminating the intended directive/block and appending attacker-chosen NGINX directives to the generated configuration of the shared Gateway. The root cause is therefore upstream of NGINX itself - the template/concat logic in theGateway Fabric control plane rather than a flaw in the NGINX runtime - and the CPE cpe:2.3:a:f5:nginx_gateway_fabric:*:*:*:*:*:*:*:* indicates the whole product line is affected, with End-of-Technical-Support versions explicitly not evaluated. The multi-tenant requirement is inherent: the injected directives land in a configuration shared by every namespace whose routes are attached to the same Gateway, which is what enables cross-tenant secret reads, proxy_pass-based SSRF, ServiceAccount token theft, and route hijacking.
Know when Nginx Gateway Fabric 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
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Network-reachable control-plane API (AV:N), low complexity (AC:L), requires namespaced RBAC so PR:L; S:C because the injection crosses tenant/authority boundaries to other tenants' secrets, tokens, and routes.
Primary rating from Vendor (f5).
CVSS VectorVendor: f5
Lifecycle Timeline
3DescriptionCVE.org
Description
NGINX Gateway Fabric has a vulnerability when it renders the spec.basic.realm (and spec.jwt.realm) field of a namespaced AuthenticationFilter verbatim, unescaped and unvalidated, into the shared data-plane nginx.conf as auth_basic "<realm>";. A namespaced authenticated attacker that configures AuthenticationFilter CRD to an HTTPRoute/GRPCRoute on a shared Gateway can craft a realm value that closes the quoted directive and the enclosing location {} block and injects arbitrary NGINX directives into that Gateway's data-plane config.
Impact
A remote authenticated attacker can send crafted requests to configure NGINX Gateway Fabric AuthenticationFilter CRD and may be able to read every co-located tenant's mounted secrets, SSRF via proxy_pass, reading the pod ServiceAccount token, or hijacking other tenants' routes. There is no data plane exposure; this is a control plane issue only.
Note: Software versions which have reached End of Technical Support (EoTS) are not evaluated.
Articles & Coverage 1
Executive ViewAI
NGINX Gateway Fabric (CVE-2026-91184, CVSS 8.7) creates a cross-tenant isolation risk in multi-tenant deployments where several namespaces share one Gateway/data plane, allowing an authenticated namespaced tenant with limited RBAC to inject NGINX directives and compromise control-plane resources. This can expose co-located tenants’ mounted secrets, pod ServiceAccount tokens, and route configurations, enable SSRF through proxy_pass, and allow route hijacking, so security leadership should treat shared NGINX Gateway Fabric environments as high risk until a vendor fix is available. There is no public exploit identified at time of analysis, and no vendor-released patch identified at time of analysis.
No vendor-released patch identified at time of analysis. Interim mitigations: enforce least-privilege RBAC to prevent namespaced tenants from creating or attaching AuthenticationFilter CRDs to shared Gateways; isolate tenants onto separate Gateways/data planes; use admission policies to validate or disallow dangerous characters in spec.basic.realm and spec.jwt.realm; audit and restrict proxy_pass, secret mounts, and ServiceAccount token access; monitor nginx.conf and Gateway API audit logs for injected directives, route hijacking, SSRF, or cross-tenant secret reads.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.
More in Nginx Gateway Fabric
View allConfiguration injection in F5 NGINX Gateway Fabric lets an authenticated Kubernetes user who can create or modify NginxP
Configuration injection in F5 NGINX Gateway Fabric allows an authenticated Kubernetes user with permission to create or
Configuration injection in NGINX Gateway Fabric allows authenticated Kubernetes users with CRD or Secret write permissio
Denial-of-service in F5 NGINX Gateway Fabric allows an authenticated Kubernetes user with rights to create or modify GRP
A namespaced authenticated attacker holding access to a Kubernetes service account can impersonate the NGINX Agent gRPC
NGINX proxy configurations forwarding traffic to upstream TLS servers can be exploited by network-positioned attackers t
EUVD-2026-101116
GHSA-8rxj-rxx8-xj47
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB