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.
openclaw (npm)< 2026.2.12>= 2026.2.12The 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.
2026.2.12): remove loopback-based authentication bypass and require the configured webhook secret.f836c385ffc746cb954e8ee409f99d079bfdcd2f (released in 2026.2.12)743f4b28495cdeb0d5bf76f6ebf4af01f6a02e5a (defense-in-depth follow-up)Thanks @simecek for reporting.
{
"github_reviewed_at": "2026-02-17T17:14:00Z",
"nvd_published_at": "2026-03-05T22:16:24Z",
"cwe_ids": [
"CWE-306"
],
"severity": "HIGH",
"github_reviewed": true
}