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.
OpenClaw thanks @smaeljaish771 for reporting.
References
Summary
Before
v2026.3.23, the GatewayagentRPC accepted/resetand/newfor callers with onlyoperator.write, even though the directsessions.resetRPC correctly requiresoperator.admin.Affected Packages / Versions
openclaw(npm)< 2026.3.23>= 2026.3.23v2026.3.23-2(630f1479c44f78484dfa21bb407cbe6f171dac87)2026.3.23-2Root Cause
The vulnerable path lived in
src/gateway/server-methods/agent.ts. A/resetor/newmessage with an explicitsessionKeyreachedperformGatewaySessionReset(...)without enforcing the sameoperator.adminguard used bysessions.reset.Fix Commit(s)
50f6a2f136fed85b58548a38f7a3dbb98d2cd1a0—fix(gateway): require admin for agent session resetRelease Status
The fix commit is contained in released tags
v2026.3.23andv2026.3.23-2. The latest shipped tag and npm release both include the fix.Code-Level Confirmation
src/gateway/server-methods/agent.tsnow rejects/resetand/newfor callers that do not haveoperator.adminbefore callingperformGatewaySessionReset(...).src/gateway/server-methods/agent.test.tscontains the regression testrejects /reset for write-scoped gateway callers.OpenClaw thanks @smaeljaish771 for reporting.
References