Skip to main content

webhookd CVE-2026-59157

MEDIUM
Authentication Bypass by Spoofing (CWE-290)
2026-09-09 https://github.com/ncarlier/webhookd GHSA-v25g-mvwr-f5fp
6.5
CVSS 3.1 · GitHub Advisory
Share

Severity by source

GitHub Advisory PRIMARY
6.5 MEDIUM
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
vuln.today AI
4.8 MEDIUM

AC:H reflects three required non-default conditions (no Basic Auth, vulnerable scripts, unhardened proxy); impacts limited to user impersonation, not full system compromise.

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

Primary rating from GitHub Advisory.

CVSS VectorGitHub Advisory

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
Low
Integrity
Low
Availability
None

Lifecycle Timeline

2
Source Code Evidence Fetched
Sep 10, 2026 - 00:19 vuln.today
Analysis Generated
Sep 10, 2026 - 00:19 vuln.today

DescriptionGitHub 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

Access
technique details hidden
Delivery
technique details hidden
Exploit
technique details hidden
Execution
technique details hidden
Impact
technique details hidden

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.

Share

CVE-2026-59157 vulnerability details – vuln.today

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