OpenClaw has a webhook auth bypass when gateway is behind a reverse proxy (loopback remoteAddress trust)
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 - Patched 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 in2026.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.
Czego dotyczy
Kliknij technologię, aby zobaczyć wszystkie dotyczące jej podatności.
| Platforma | Paczka | Podatne wersje | Poprawka w wersji |
|---|---|---|---|
| Paczka npm | openclaw | < 2026.2.12 | 2026.2.12 |
Odnośniki
- https://github.com/openclaw/openclaw/security/advisories/GHSA-xc7w-v5x6-cc87
- https://nvd.nist.gov/vuln/detail/CVE-2026-29613
- https://github.com/openclaw/openclaw/commit/743f4b28495cdeb0d5bf76f6ebf4af01f6a02e5a
- https://github.com/openclaw/openclaw/commit/f836c385ffc746cb954e8ee409f99d079bfdcd2f
- https://github.com/openclaw/openclaw
- https://github.com/openclaw/openclaw/releases/tag/v2026.2.12
- https://www.vulncheck.com/advisories/openclaw-webhook-authentication-bypass-via-loopback-remoteaddress-trust
- Wektor CVSS
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N- Słabość (CWE)
CWE-306- Platforma
- npm
- Paczka
openclaw- Ujawniono
- 17.02.2026
- Aktualizacja
- 11.10.2026 10:22
Źródła i licencje
OSV / GitHub Advisory Database - GHSA-xc7w-v5x6-cc87 - CC BY 4.0
Historia podatności: openclaw
Wszystkie opisane podatności tej paczki (Paczka npm), od najnowszej. Widać, czy to jednorazowa wpadka, czy paczka, której trzeba pilnować.
- Wszystkich wpisów
- 588
- Pierwsza → ostatnia
- 02.2026 07.2026
- Bez poprawki
- 9
- Wykorzystywana w atakach
- 0
Rozkład istotności
- Krytyczna 20
- Wysoka 215
- Średnia 299
- Niska 54
Ujawnienia w latach
- 2026: 588
-
OpenClaw has a webhook auth bypass when gateway is behind a reverse proxy (loopback remoteAddress trust) ten wpis
Dowiedz się, które podatności dotyczą Twojej aplikacji
Po podłączeniu integracji DockRay i włączeniu raportowania oprogramowania DockRay porównuje zgłoszone wersje komponentów ze znanymi podatnościami i powiadamia o potwierdzonych dopasowaniach. Zakres zależy od obsługiwanej technologii i dostępnych biuletynów.