GHSA-wq58-2pvg-5h4f
OpenClaw: Gateway agent /reset exposes admin session reset to operator.write callers
Packages
Details
As written in the advisory (Markdown source, shown as plain text).
## Summary
Before `v2026.3.23`, the Gateway `agent` RPC accepted `/reset` and `/new` for callers with only `operator.write`, even though the direct `sessions.reset` RPC correctly requires `operator.admin`.
## Affected Packages / Versions
- Package: `openclaw` (npm)
- Affected: `< 2026.3.23`
- Fixed: `>= 2026.3.23`
- Latest released tag checked: `v2026.3.23-2` (`630f1479c44f78484dfa21bb407cbe6f171dac87`)
- Latest published npm version checked: `2026.3.23-2`
## Root Cause
The vulnerable path lived in `src/gateway/server-methods/agent.ts`. A `/reset` or `/new` message with an explicit `sessionKey` reached `performGatewaySessionReset(...)` without enforcing the same `operator.admin` guard used by `sessions.reset`.
## Fix Commit(s)
- `50f6a2f136fed85b58548a38f7a3dbb98d2cd1a0` — `fix(gateway): require admin for agent session reset`
## Release Status
The fix commit is contained in released tags `v2026.3.23` and `v2026.3.23-2`. The latest shipped tag and npm release both include the fix.
## Code-Level Confirmation
- `src/gateway/server-methods/agent.ts` now rejects `/reset` and `/new` for callers that do not have `operator.admin` before calling `performGatewaySessionReset(...)`.
- `src/gateway/server-methods/agent.test.ts` contains the regression test `rejects /reset for write-scoped gateway callers`.
Thanks @smaeljaish771 for reporting.
References
External links from the advisory. They lead to third-party sites.