Skip to main content

Dapr EUVDEUVD-2026-41427

| CVE-2026-59096 HIGH
Origin Validation Error (CWE-346)
2026-07-02 VulnCheck GHSA-q8cr-74p8-486p
8.2
CVSS 4.0 · Vendor: VulnCheck
Share

Severity by source

Vendor (VulnCheck) PRIMARY
8.2 HIGH
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
vuln.today AI
6.8 MEDIUM

Network, unauthenticated, no UI; AC:H reflects the required unpinned-discovery precondition; S:C because forged auth impacts downstream relying parties; integrity-only (I:H), no confidentiality or availability loss.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
X

Lifecycle Timeline

2
Analysis Generated
Jul 02, 2026 - 20:33 vuln.today
CVSS changed
Jul 02, 2026 - 20:22 NVD
7.5 (HIGH) 8.2 (HIGH)

DescriptionCVE.org

Dapr Sentry's OIDC discovery endpoint derives the issuer and jwks_uri of the /.well-known/openid-configuration document from the request Host, honoring an attacker-controlled X-Forwarded-Host header without validation when no allowed-hosts list is configured (the default), and serves the document with a one-hour public cache lifetime. A remote unauthenticated attacker can poison the discovery document so relying parties performing dynamic (unpinned) discovery fetch the JWKS from an attacker-controlled server, causing attacker-signed JWTs to be accepted. Exploitation requires the OIDC server enabled without a configured jwt-issuer or oidc-allowed-hosts.

AnalysisAI

Authentication bypass via OIDC discovery poisoning in Dapr Sentry allows a remote unauthenticated attacker to inject an attacker-controlled issuer and jwks_uri into the /.well-known/openid-configuration document by supplying a crafted X-Forwarded-Host header. Because the endpoint honors that header without validation when no allowed-hosts list is set (the default) and caches the response publicly for one hour, relying parties that perform dynamic, unpinned OIDC discovery will fetch keys from an attacker's server and accept attacker-signed JWTs - effectively forging trusted identities. Reported by VulnCheck (CVSS 4.0 8.2); no public exploit identified at time of analysis, and it is not listed in CISA KEV.

Technical ContextAI

Dapr is a CNCF distributed-application runtime, and Sentry is its identity/certificate authority component. Sentry can expose an OIDC provider that publishes a standard discovery document at /.well-known/openid-configuration; relying parties read the issuer and jwks_uri from that document to locate the JSON Web Key Set used to validate JWT signatures. The flaw is an Origin Validation Error (CWE-346): Sentry derives those URLs from the inbound request Host and trusts the X-Forwarded-Host proxy header without checking it against an allowlist. Since HTTP forwarding headers are attacker-controllable and the document is served with a one-hour public cache lifetime, a single poisoned response can redirect JWKS retrieval to an external host for any consumer doing unpinned discovery. The affected CPE is cpe:2.3:a:dapr:dapr (all versions prior to the fix).

RemediationAI

Upstream fix available (PR/commit); released patched version not independently confirmed - apply the changes from dapr/dapr pull requests https://github.com/dapr/dapr/pull/10027, https://github.com/dapr/dapr/pull/10028 and https://github.com/dapr/dapr/pull/10029 by upgrading to the Dapr release that incorporates them once identified. As an immediate compensating control that does not require the patch, configure oidc-allowed-hosts so Sentry only emits discovery URLs for approved hostnames, and/or set an explicit jwt-issuer so the issuer/jwks_uri are no longer derived from the request Host - either setting removes the default vulnerable condition. Additionally, ensure any fronting proxy or load balancer strips or overwrites the X-Forwarded-Host header from untrusted clients, and consider shortening or disabling the one-hour public cache on the discovery response to limit poisoning persistence (trade-off: slightly higher discovery request load on Sentry). On the consuming side, pin relying parties to a known issuer and JWKS endpoint rather than following dynamic discovery, which neutralizes the attack regardless of Sentry configuration. Consult the VulnCheck advisory (https://www.vulncheck.com/advisories/dapr-oidc-discovery-issuer-and-jwks-uri-injection-via-unvalidated-x-forwarded-host) for authoritative guidance.

Share

EUVD-2026-41427 vulnerability details – vuln.today

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