CVE-2026-36045: picoclaw ExecTool (guardCommand) Incomplete Denylist leads to OS Command Injection 漏洞概述 picoclaw是一个超轻量级的AI代理框架(Go),专为IoT和嵌入式设备设计(主要目标:Sipeed LicheeRV Nano)。它公开了一个 ,代表AI代理执行shell命令。为了限制执行, 在 中实现了一个 安全守卫,基于恰好8个正则表达式的黑名单。 这8个模式仅涵盖磁盘破坏命令( 、 、 、写入块设备、 、 )。有零个模式涵盖shell调用、权限提升、脚本语言或远程代码下载。任何通过Telegram、Discord、Slack、LINE、WhatsApp、DingTalk或直接API访问代理界面的攻击者,都可以发送一个简单的单行命令,绕过守卫特权并实现主机上的任意OS命令执行。 在Sipeed LicheeRV Nano和类似的嵌入式目标上,如果picoclaw进程以root身份运行(在单用途嵌入式部署中很常见),攻击者将获得完整的设备控制权,包括通过I2C和SPI工具进行物理硬件操作(在同一个包中 、 )。 影响范围 产品: picoclaw (speedy/picoclaw) 受影响版本: v0.1.2及更早版本(未发布修复版本) 严重性: 高;CVSS v3.1: AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H (8.8) CWE: CWE-184 (不完整的不允许输入列表),CWE-78 (OS命令注入) 发现者: Anmol Vats 受影响提交: da79c201c75a91d5c54158419bfcdf3b4546ec8b (v0.1.2, 2025-02-17发布) 建议ID: PICOCLAW-2026-001 修复方案 目前尚未发布修复版本。 建议用户升级到修复后的版本(如果可用)。 在修复之前,建议用户采取额外的安全措施,如限制对代理界面的访问、监控异常活动等。 确认的绕过载荷 所有载荷均已针对v0.1.2中的确切8个模式进行验证。见 中的自包含验证脚本。 绕过载荷 正确阻止的载荷(8个模式按其预期范围工作) 边缘情况(也通过守卫) 概念验证 在此gist中复制了来自 的确切8个模式,在提交da79c201c75a91d5c54158419bfcdf3b4546ec8b中使用Python的 模块(所有8个模式使用的相同语法),并验证每个绕过。 预期输出 攻击场景 场景1 - 凭证外泄 Picoclaw在两个文件中存储凭证: (OAuth令牌,由 管理)和 (所有提供商API密钥:Anthropic、OpenAI、OpenRouter、Groq、Gemini等,以及Telegram、Discord、Slack、LINE、WhatsApp、DingTalk的bot令牌)。 攻击者通过任何连接的聊天渠道向代理发送消息: 不匹配8个模式中的任何一个。所有存储的密钥在一次请求中都被外泄。 场景2 - 远程载荷下载和执行 没有curl+pipe模式,也没有pipe-to-shell模式在v0.1.2中。攻击者URL处的shell脚本以picoclaw进程的权限执行。 场景3 - 反向shell 不在黑名单中, 不匹配 模式(特定于块设备)。攻击者接收交互式shell。 场景4 - IoT设备上的持久性 和 都绕过。持久后门每5分钟执行一次。 场景5 - 物理硬件操作(IoT特定) picoclaw随I2C和SPI工具作为一等组件一起提供( 、 、 、 )。通过shell绕过在同一主机上: 在Sipeed LicheeRV Nano和兼容设备上,任意GPIO切换、I2C写入和SPI操作是可能的,启用直接物理硬件控制。 场景6 - 通过消息平台进行提示注入 能够通过任何代理监控的渠道发送消息的攻击者可以包括导致AI代理调用ExecTool的自然语言: 不需要任何allowlist成员资格,只需向连接的渠道发送消息。 影响 披露时间线