webhookd CVE-2026-59157
MEDIUMSeverity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
AC:H reflects three required non-default conditions (no Basic Auth, vulnerable scripts, unhardened proxy); impacts limited to user impersonation, not full system compromise.
Primary rating from GitHub Advisory.
CVSS VectorGitHub Advisory
Lifecycle Timeline
2DescriptionGitHub Advisory
Description
Before 1.22, if the Basic Auth (htpasswd) middleware was not configured, all incoming HTTP headers were blindly forwarded to the webhook script execution environment as shell variables. While the Basic Auth middleware correctly strips the authentication header (X-WebAuthn-User) from the incoming request before conditionally re-injecting it on successful authentication, disabling Basic Auth left the system vulnerable if deployed behind an unhardened reverse proxy.
Impact
If an upstream reverse proxy is not properly hardened to strip client-provided authentication headers, an attacker could manually supply these headers (e.g., X-WebAuthn-User). A webhook script relying on this forwarded header for privilege elevation or identity verification could therefore be exploited to bypass security controls and impersonate other users.
Mitigation
The WHD_ALLOWED_UPSTREAM_HEADERS configuration setting has been introduced to enforce a strict allowlist of HTTP headers that can be converted into shell variables.
Additionally, the default behavior has been changed to adhere to the principle of least privilege. It is no longer * (allow all). The default allowed headers are now restricted to standard operational headers: Accept,Content-Type,Content-Length,User-Agent,X-Forwarded-For
Administrators relying on upstream authentication proxies must explicitly add their authentication headers (e.g., WHD_ALLOWED_UPSTREAM_HEADERS="Accept,Content-Type,Content-Length,User-Agent,X-Forwarded-For,x-webauthn-user") to ensure they are passed to the scripts securely.
AnalysisAI
Header injection in webhookd prior to v1.22.0 allows unauthenticated remote attackers to impersonate authenticated users by supplying forged HTTP authentication headers when the Basic Auth middleware is disabled. The server blindly forwarded all incoming HTTP headers as shell variables to webhook script execution environments; without the Basic Auth (htpasswd) middleware active to sanitize the X-WebAuthn-User header, scripts relying on that variable for identity or privilege decisions could be manipulated. …
Unlock full vulnerability intelligence
- Risk assessment & exploitation conditions
- Attack chain visualization
- Remediation with exact patch versions
- Threat intelligence from 22 sources
- Personal watchlist & email alerts
Free forever · No credit card required
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata
Vulnerability AssessmentAI
| Exploitation | Exploitation requires all three of the following conditions simultaneously: (1) webhookd is running a version prior to 1.22.0 with the Basic Auth (`htpasswd`) middleware explicitly disabled or never configured; (2) one or more deployed webhook scripts use the `X-WebAuthn-User` header (exposed as `$HTTP_X_WEBAUTHN_USER`) or another attacker-controllable header to make authorization or identity decisions rather than relying on a separate verified mechanism; and (3) the upstream reverse proxy does not strip or normalize client-supplied authentication headers before proxying requests to webhookd. … Additional conditions and limiting factors are described in the full assessment. |
| Risk Assessment | The provided CVSS 3.1 score of 6.5 (AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N) captures the network-accessible, unauthenticated attack surface but overstates ease of exploitation with AC:L. … Full risk analysis with EPSS, KEV, and SSVC signal comparison available after sign-in. |
| Exploit Scenario | Full exploit scenario with step-by-step reproduction available after sign-in. |
| Remediation | Upgrade webhookd to version 1.22.0 or later, available at https://github.com/ncarlier/webhookd/releases/tag/v1.22.0. … Detailed patch versions, workarounds, and compensating controls in full report. |
Threat intelligence, references, and detailed analysis are available after sign-in.
Same weakness CWE-290 – Authentication Bypass by Spoofing
View allSame technique Authentication Bypass
View allShare
External POC / Exploit Code
Leaving vuln.today
GHSA-v25g-mvwr-f5fp