When Nextcloud Talk webhook signing was valid, replayed requests could be accepted without durable replay suppression, allowing duplicate inbound processing after replay-window expiry or process restart.
OpenClaw's Nextcloud Talk webhook path verified HMAC(secret, random + body) but previously lacked durable replay state tied to webhook events. This allowed replay of a previously valid signed request in some operational conditions.
The fix on main adds:
- persistent per-account replay dedupe for Nextcloud Talk webhook events,
- replay checks before webhook side effects (onMessage),
- backend-origin validation against configured account base URL (when configured).
A captured valid signed webhook request could be replayed to trigger duplicate inbound handling. This is an integrity/availability issue (duplicate actions/noise), scoped to deployments using Nextcloud Talk webhook integration.
openclaw (npm)<= 2026.2.242026.2.25d512163d686ad6741783e7119ddb3437f493dbbcpatched_versions is pre-set to the release (2026.2.25) so once npm release 2026.2.25 is published, advisory is now published.
OpenClaw thanks @aristorechina for reporting.
{
"nvd_published_at": null,
"severity": "MODERATE",
"github_reviewed_at": "2026-03-03T23:08:55Z",
"cwe_ids": [
"CWE-294"
],
"github_reviewed": true
}