CVE-2026-28473: OpenClaw authorization bypass: operator.write can resolve exec approvals via chat.send -> /approve
Summary What this means (plain language) If you give a client “chat/write” access to the gateway (operator.write) but you do not intend to let that client approve exec requests (operator.approvals), affected versions could still let that client approve/deny a pending exec approval by sending the /approve chat command.
Published Feb 17, 2026 · Updated Mar 6, 2026
Affected packages
openclaw
- Ecosystem
- npm
- Affected
- < 2026.2.2
- Fixed in
- 2026.2.2
- Check
npm ls openclaw
Advisory details
From the GitHub Advisory Database (CC BY 4.0).
Summary
What this means (plain language)
If you give a client “chat/write” access to the gateway (operator.write) but you do not intend to let that client approve exec requests (operator.approvals), affected versions could still let that client approve/deny a pending exec approval by sending the /approve chat command.
This is mainly relevant for shared or multi-client setups where different tokens are intentionally scoped differently. Single-operator installs are typically less impacted.
Technical summary
A gateway client authenticated with a device token scoped only to operator.write (without operator.approvals) could approve/deny pending exec approval requests by sending a chat message containing the built-in /approve command.
exec.approval.resolve is correctly scoped to operator.approvals for direct RPC calls, but the /approve command path invoked it via an internal privileged gateway client.
Affected Packages / Versions
openclaw(npm):< 2026.2.2
Fix
- Fixed in
openclaw2026.2.2. - Fix commit(s):
efe2a464afcff55bb5a95b959e6bd9ec0fef086e. - Change: when
/approveis invoked from gateway clients (webchat/internal channel), it now requires the requesting client to haveoperator.approvals(oroperator.admin).
Workarounds
- Upgrade to
openclaw >= 2026.2.2. - If you cannot upgrade: avoid issuing write-only device tokens to untrusted clients; disable text commands (
commands.text=false) or restrict access to the webchat/control UI.
References
- Fix:
src/auto-reply/reply/commands-approve.ts - Coverage:
src/auto-reply/reply/commands-approve.test.ts
Release Process Note
This advisory is kept in draft; once the fixed npm versions are available, it can be published without further edits.
Thanks @yueyueL for reporting.
Credited to yueyueL.
References
- https://github.com/openclaw/openclaw/security/advisories/GHSA-mqpw-46fh-299h
- https://nvd.nist.gov/vuln/detail/CVE-2026-28473
- https://github.com/openclaw/openclaw/commit/efe2a464afcff55bb5a95b959e6bd9ec0fef086e
- https://www.vulncheck.com/advisories/openclaw-authorization-bypass-via-approve-chat-command
- https://github.com/advisories/GHSA-mqpw-46fh-299h
How this page is made: the data panel comes from the GitHub Advisory Database, CISA’s KEV catalog, the NVD and FIRST EPSS, and updates twice a day. No analysis has been written for this entry yet. Methodology
More OpenClaw vulnerabilities
All OpenClaw entriesCVE-2026-35630
OpenClaw: QQBot native approval buttons did not enforce configured approver identity
high8.0Jul 2, 2026CVE-2026-53806
OpenClaw: Combined POSIX shell options could confuse exec revalidation
high8.8Jul 2, 2026CVE-2026-53809
OpenClaw: Embedded runner policy could be confused by provider aliases
medium3.8Jul 2, 2026CVE-2026-53810
OpenClaw's marketplace runtime extension metadata could point at unscanned payloads
high8.8Jul 2, 2026CVE-2026-53811
OpenClaw: Matrix allowFrom could bind to mutable display names
high8.8Jul 2, 2026CVE-2026-53812
OpenClaw's browser act interactions could bypass private-network navigation checks
medium7.7Jul 2, 2026
