The BlueBubbles webhook handler in OpenClaw versions prior to 2026.2.21 contains a passwordless fallback authentication path that allows unauthenticated webhook events in certain reverse-proxy or local routing configurations. Attackers can bypass webhook authentication by exploiting the loopback/proxy heuristics to send unauthenticated webhook events to the BlueBubbles plugin.
The BlueBubbles webhook handler in OpenClaw versions prior to 2026.2.21 contains a passwordless fallback authentication path that allows unauthenticated webhook events in certain reverse-proxy or local routing configurations. Attackers can bypass webhook authentication by exploiting the loopback/proxy heuristics to send unauthenticated webhook events to the BlueBubbles plugin.
The BlueBubbles webhook handler in OpenClaw versions prior to 2026.2.21 contains a passwordless fallback authentication path that allows unauthenticated webhook events in certain reverse-proxy or local routing configurations. Attackers can bypass webhook authentication by exploiting the loopback/proxy heuristics to send unauthenticated webhook events to the BlueBubbles plugin.
### Summary
BlueBubbles webhook auth in the optional beta iMessage plugin allowed a passwordless fallback path. In some reverse-proxy/local routing setups, this could allow unauthenticated webhook events.
### Affected Component and Scope
- Component: `extensions/bluebubbles` webhook handler
- Scope: only deployments using the optional BlueBubbles plugin where webhook password auth was not configured for incoming webhook events
### Affected Packages / Versions
- Package: `openclaw/openclaw` (npm)
- Latest published npm version at triage time (2026-02-21): `2026.2.19-2`
- Affected structured range: `<=2026.2.19-2`
- Fixed on `main`; planned patched release: `2026.2.21` (`>=2026.2.21`)
### Details
The vulnerable implementation had multiple auth branches, including a passwordless fallback with loopback/proxy heuristics.
The fix now uses one authentication codepath:
- inbound webhook token/guid must match `channels.bluebubbles.password`
- webhook target matching is consolidated to shared plugin-sdk logic
- BlueBubbles config validation now requires `password` when `serverUrl` is set
### Impact
BlueBubbles is an optional beta iMessage plugin, and onboarding/channel-add flows already require a password. Practical exposure is mainly custom/manual configurations that omitted webhook password authentication.
### Remediation
- Upgrade to a release that includes this patch (`>=2026.2.21`, planned).
- Ensure BlueBubbles webhook delivery includes a matching password (`?password=<password>` or `x-password`).
### Fix Commit(s)
- `6b2f2811dc623e5faaf2f76afaa9279637174590`
- `283029bdea23164ab7482b320cb420d1b90df806`
### Release Process Note
`patched_versions` is pre-set to the planned next release (`2026.2.21`) so once npm release is out, advisory publish can proceed without additional ticket edits.
OpenClaw thanks @zpbrent for reporting.
## Duplicate Advisory
This advisory has been withdrawn because it is a duplicate of GHSA-5mx2-2mgw-x8rm. This link is maintained to preserve external references.
## Original Description
OpenClaw versions prior to 2026.2.21 BlueBubbles webhook handler contains a passwordless fallback authentication path that allows unauthenticated webhook events in certain reverse-proxy or local routing configurations. Attackers can bypass webhook authentication by exploiting the loopback/proxy heuristics to send unauthenticated webhook events to the BlueBubbles plugin.
EUVD source date text has no stated timezone and is retained without inventing a UTC instant. Related bulletin membership is not an alias, common cause or applicability claim. A missing vector with a zero score is treated as unrated. Complete vendor/product and underlying source evidence remains in the original JSON.
Original publisher date fields
datePublished: Mar 21, 2026, 12:42:32 AM
dateUpdated: Sep 17, 2026, 5:54:16 PM
1 related source bulletins · separate from aliases
WID-SEC-W-2026-0472: OpenClaw: Mehrere Schwachstellen
No normalized affected-package data is projected for this source revision. The original publisher record may contain additional product and version evidence; this does not establish that a package is unaffected.
NVD analysis and CPE criteria are source context, not proof that a package or your environment is affected. Complete affected data, logical configurations and SSVC are retained in the original JSON.
Source analysis status: Modified
Weakness classifications: CWE-306
Original publisher date fields
published: 2026-03-21T01:17:10.510
lastModified: 2026-09-17T18:16:41.327
1 source CPE criteria · context only
cpe:2.3:a:openclaw:openclaw:*:*:*:*:*:node.js:*:*
The original JSON retains the logical configuration operators, exclusions and version bounds.
No normalized affected-package data is projected for this source revision. The original publisher record may contain additional product and version evidence; this does not establish that a package is unaffected.