CVE-2026-35667OpenClaw在2026.3.24之前的版本中对CVE-2026-27486的修复不完整。其聊天命令!stop使用了shell-utils.ts中未修补的killProcessTree函数,该函数直接发送SIGKILL信号而非先进行优雅的SIGTERM关闭。攻击者可利用此漏洞强制终止进程,导致数据损坏、资源泄漏及跳过安全清理操作。
该漏洞的产生源于OpenClaw项目在修复之前的漏洞(CVE-2026-27486)时,未能完全覆盖所有代码路径。具体而言,位于shell-utils.ts文件中的killProcessTree函数存在逻辑缺陷。正常情况下,系统在终止服务进程时应遵循优雅关闭机制,即首先发送SIGTERM信号,允许进程捕获信号并执行清理回调,如刷新缓冲区、关闭文件描述符、删除临时文件等。然而,受影响的版本中,!stop聊天命令调用的该函数直接执行了操作系统级别的SIGKILL命令。由于SIGKILL不可被应用程序捕获或忽略,进程会立即被内核终止。这种暴力终止方式导致正在进行的I/O操作中断,引发数据损坏(完整性影响);同时,已分配的系统资源(如内存句柄、套接字)可能未被正确释放,导致资源泄漏。此外,涉及敏感信息的清理步骤(如内存擦除)被跳过,可能造成潜在的安全风险。本地低权限攻击者通过触发该命令,即可对系统造成上述破坏。