| Advisory ID | github_osv/GHSA-jwf4-8wf4-jf2m |
| Aliases |
CVE-2026-22170
|
| Summary | OpenClaw: BlueBubbles (optional plugin) pairing/allowlist mismatch when allowFrom is empty ### Summary BlueBubbles is an optional OpenClaw channel plugin. A configuration-sensitive access-control mismatch allowed DM senders to be treated as authorized when `dmPolicy` was `pairing` or `allowlist` and `allowFrom` was empty/unset. ### Severity Rationale (Medium) Severity is set to **medium** because: - this affects an optional plugin, not core messaging surfaces; - many deployments use owner-controlled/private BlueBubbles identities with limited external reachability; - practical exploitability depends on an untrusted sender being able to reach that specific BlueBubbles account identifier. In typical personal/self-hosted BlueBubbles setups, the mapped Apple identity is single-owner and not broadly reachable, so this is usually low practical risk. Risk is higher in deployments where the identifier is publicly reachable and/or agent tool permissions are broad. ### Technical Details 1. BlueBubbles DM policy defaults to `pairing` (`dmPolicy ?? "pairing"`). 2. Effective allowlist can be empty (`effectiveAllowFrom`). 3. DM/reaction authorization called `isAllowedBlueBubblesSender(...)`. 4. That delegated to shared `isAllowedParsedChatSender(...)`, which previously returned `true` for empty allowlists. 5. Result: unknown senders could bypass intended pairing/allowlist gating when `allowFrom` was empty. ### Affected Packages / Versions - Package: `openclaw` (npm) - Vulnerable versions: `<= 2026.2.21-2` - Planned fixed version: `2026.2.22` ### Fix The shared parsed-chat allowlist helper now fails closed on empty allowlists, restoring expected BlueBubbles DM gating behavior. BlueBubbles inbound gating was also refactored to use one shared DM/group decision helper for both message and reaction paths to reduce future drift. ### Fix Commit(s) - `9632b9bcf032c5f2280c3103961fde912ab1f920` - `2ba6de7eaad812e5e8603018e14e54e96bdd57dd` - `51c0893673de8e5cea64e64351dbfa4680ba0dec` - `4540790cb62412676f7b61cfc6e47443f84a251e` OpenClaw thanks @tdjackey for reporting. |
| Status | Published |
| Exploitability | 0.5 |
| Weighted Severity | 4.8 |
| Risk | 2.4 |
| Affected and Fixed Packages | Package Details |
| Introduced and Fixed Package Commit Patches | Package Commit Patches Details |
| CWE-863 | Incorrect Authorization |
| System | Score | Found at |
|---|---|---|
| cvssv4 | 5.3 | https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/03/GHSA-jwf4-8wf4-jf2m/GHSA-jwf4-8wf4-jf2m.json |
| generic_textual | MODERATE |
| Reference id | Reference type | URL |
|---|---|---|
| https://github.com/openclaw/openclaw | ||
| 2ba6de7eaad812e5e8603018e14e54e96bdd57dd | Other | https://github.com/openclaw/openclaw/commit/2ba6de7eaad812e5e8603018e14e54e96bdd57dd |
| 4540790cb62412676f7b61cfc6e47443f84a251e | Other | https://github.com/openclaw/openclaw/commit/4540790cb62412676f7b61cfc6e47443f84a251e |
| 51c0893673de8e5cea64e64351dbfa4680ba0dec | Other | https://github.com/openclaw/openclaw/commit/51c0893673de8e5cea64e64351dbfa4680ba0dec |
| 9632b9bcf032c5f2280c3103961fde912ab1f920 | Other | https://github.com/openclaw/openclaw/commit/9632b9bcf032c5f2280c3103961fde912ab1f920 |
| CVE-2026-22170 | https://nvd.nist.gov/vuln/detail/CVE-2026-22170 | |
| GHSA-jwf4-8wf4-jf2m | Advisory | https://github.com/openclaw/openclaw/security/advisories/GHSA-jwf4-8wf4-jf2m |
| openclaw-bluebubbles-access-control-bypass-via-empty-allowfrom-configuration | Advisory | https://www.vulncheck.com/advisories/openclaw-bluebubbles-access-control-bypass-via-empty-allowfrom-configuration |
No EPSS data available for this advisory.
| Patch URL | |
|---|---|
| There are no known patches. | |
| Attack Vector (AV) | Attack Complexity (AC) | Attack Requirements (AT) | Privileges Required (PR) | User Interaction (UI) | Vulnerable System Impact Confidentiality (VC) | Vulnerable System Impact Integrity (VI) | Vulnerable System Impact Availability (VA) | Subsequent System Impact Confidentiality (SC) | Subsequent System Impact Integrity (SI) | Subsequent System Impact Availability (SA) |
|---|---|---|---|---|---|---|---|---|---|---|
network adjacent local physical |
low high |
none present |
none low high |
none passive active |
high low none |
high low none |
high low none |
high low none |
high low none |
high low none |
Vector: SSVCv2/E:N/A:Y/T:P/P:M/B:A/M:M/D:T/2026-03-31T15:21:26Z/
Decision: Track
Source URL: https://github.com/cisagov/vulnrichment/blob/develop/2026/22xxx/CVE-2026-22170.json
Source Advisory: vulnrichment/CVE-2026-22170
[{'Exploitation': 'none'},
{'Automatable': 'yes'},
{'Technical Impact': 'partial'},
{'Mission Prevalence': 'minimal'},
{'Public Well-being Impact': 'material'},
{'Mission & Well-being': 'medium'}]