GitHub Advisoryadvisory · npm
GHSA-xc7w-v5x6-cc87 OpenClaw has a webhook auth bypass when gateway is behind a reverse proxy (loopback remoteAddress trust)
HIGH
Official page ↗
- Aliases
- CVE-2026-29613
- Ecosystem
- npm
- Packages
- openclaw
- Severity
- High
- CVSS vector
- CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N
- Weaknesses
- CWE-306
- Reviewed
- 2026-02-17
Affected packages
• npm openclaw: < 2026.2.12 → fixed in 2026.2.12
Description
Summary
The BlueBubbles webhook handler previously treated any request whose socket `remoteAddress` was loopback (`127.0.0.1`, `::1`, `::ffff:127.0.0.1`) as authenticated. When OpenClaw Gateway is behind a reverse proxy (Tailscale Serve/Funnel, nginx, Cloudflare Tunnel, ngrok), the proxy typically connects to the gateway over loopback, allowing unauthenticated remote requests to bypass the configured webhook password.
This could allow an attacker who can reach the proxy endpoint to inject arbitrary inbound BlueBubbles message/reaction events.
Affected Packages / Versions
• Package: `openclaw` (npm)
• Affected versions: `= 2026.2.12`
Exposure / Configuration
• BlueBubbles is an optional channel plugin (intended to eventually replace the legacy iMessage plugin, which is also optional). It is not enabled by default and is not part of a standard OpenClaw configuration.
• Only deployments with the BlueBubbles webhook endpoint exposed through a reverse proxy are impacted.
Details
The BlueBubbles webhook handler accepts inbound events via an HTTP POST endpoint under the configured BlueBubbles webhook path.
In vulnerable versions, the handler would accept requests as authenticated if `req.socket.remoteAddress` is loopback, without validating forwarding headers. With common reverse-proxy setups, the gateway sees the proxy as the direct client (loopback), even when the original request is remote.
Fix
• Primary fix (released in `2026.2.12`): remove loopback-based authentication bypass and require the configured webhook secret.
• Defense-in-depth follow-up (next release after commit below): treat requests with forwarding headers as proxied and never accept passwordless webhooks through a proxy.
Fix Commit(s)
• `f836c385ffc746cb954e8ee409f99d079bfdcd2f` (released in `2026.2.12`)
• `743f4b28495cdeb0d5bf76f6ebf4af01f6a02e5a` (defense-in-depth follow-up)
Mitigations
• Ensure a BlueBubbles webhook password is configured.
• Do not expose the gateway webhook endpoint publicly without authentication.
Thanks @simecek for reporting.
Related
Alias · CVE (1)
- CVE-2026-29613 OpenClaw versions prior to 2026.2.12 contain a vulnerability in the BlueBubbles (optional plugin) webhook handler in which it authenticates… vulnerability
Weakness · CWE (1)
- CWE-306 Missing Authentication for Critical Functionality weakness
References
- https://github.com/openclaw/openclaw/security/advisories/GHSA-xc7w-v5x6-cc87 web
- https://nvd.nist.gov/vuln/detail/CVE-2026-29613 advisory
- https://github.com/openclaw/openclaw/commit/743f4b28495cdeb0d5bf76f6ebf4af01f6a02e5a web
- https://github.com/openclaw/openclaw/commit/f836c385ffc746cb954e8ee409f99d079bfdcd2f web
- https://github.com/openclaw/openclaw package
- https://github.com/openclaw/openclaw/releases/tag/v2026.2.12 web
- https://www.vulncheck.com/advisories/openclaw-webhook-authentication-bypass-via-loopback-remoteaddress-trust web