exec.approval requests for host=node were not explicitly bound to the target nodeId, so an approval intended for one node could be replayed for a different node under the same operator-controlled gateway fleet.
An operator approval for a system.run request could be reused across nodes if the request payload did not carry node identity through approval and execution checks.
openclaw (npm)<= 2026.2.22-22026.2.23 (released)Upgrade to 2026.2.23 or later once published.
The fix requires and persists nodeId for host=node approval requests and rejects execution when the approving node binding does not match the invoking node.
patched_versions is pre-set to the released version (2026.2.23). This advisory now reflects released fix version 2026.2.23.
OpenClaw thanks @tdjackey for reporting.
{
"severity": "MODERATE",
"cwe_ids": [
"CWE-285",
"CWE-863"
],
"github_reviewed": true,
"github_reviewed_at": "2026-03-02T22:29:45Z",
"nvd_published_at": null
}