Summary
OpenClaw webhooks allowed route secrets to be backed by SecretRef values, but cached the resolved secret for a route. After an operator rotated the underlying secret and ran openclaw secrets reload, the previous resolved webhook secret could remain valid until the plugin or gateway restarted.
Impact
An attacker who already had a previously valid webhook route secret could continue authenticating webhook requests after the operator rotated the secret and reloaded secrets. This weakened credential rotation for webhook routes and could allow continued invocation of the configured webhook task flow until restart.
Affected Packages / Versions
- Package:
openclaw on npm
- Affected: versions before
2026.4.23
- Fixed:
2026.4.23
- Latest stable verified fixed:
openclaw@2026.4.23, tag v2026.4.23
Fix
Webhook route authentication now resolves SecretRef-backed route secrets on each request. A rotated secret becomes effective after openclaw secrets reload without requiring a gateway or plugin restart, and the old secret is rejected.
Fix Commit(s)
36c4a372a0ad5dca8bfc0d93f7aab9c2f2de66fa (fix(webhooks): reload route secrets per request)
Severity
Severity remains medium. The attack requires possession of a previously valid route secret, but the stale credential can continue to authorize webhook actions after rotation.
References
Summary
OpenClaw webhooks allowed route secrets to be backed by
SecretRefvalues, but cached the resolved secret for a route. After an operator rotated the underlying secret and ranopenclaw secrets reload, the previous resolved webhook secret could remain valid until the plugin or gateway restarted.Impact
An attacker who already had a previously valid webhook route secret could continue authenticating webhook requests after the operator rotated the secret and reloaded secrets. This weakened credential rotation for webhook routes and could allow continued invocation of the configured webhook task flow until restart.
Affected Packages / Versions
openclawon npm2026.4.232026.4.23openclaw@2026.4.23, tagv2026.4.23Fix
Webhook route authentication now resolves
SecretRef-backed route secrets on each request. A rotated secret becomes effective afteropenclaw secrets reloadwithout requiring a gateway or plugin restart, and the old secret is rejected.Fix Commit(s)
36c4a372a0ad5dca8bfc0d93f7aab9c2f2de66fa(fix(webhooks): reload route secrets per request)Severity
Severity remains
medium. The attack requires possession of a previously valid route secret, but the stale credential can continue to authorize webhook actions after rotation.References