在 MS-Agent 框架 1.5.2 版本的 Shell 工具组件中发现了一个严重的命令注入漏洞(CVE-2026–2256,CVSS X.X)。该漏洞源于对用户影响的输入未进行适当的清理,这些输入被直接传递到 shell 执行上下文中,从而能够执行非预期的命令。 攻击者可以通过将精心构造的内容注入到代理所消费的数据源(如提示词、文档、日志或研究输入)中来利用此漏洞,无需直接访问 shell 或明确滥用操作员权限。因此,在代理的正常执行流程中,任意命令都可以以 MS-Agent 进程在主机系统上的权限执行,可能导致主机完全被攻陷。
Shell 工具是 MS-Agent 的内部组件,允许代理在主机上执行操作系统命令。它旨在通过将命令执行委托给底层操作系统来支持代理工作流,例如文件管理、目录遍历和自动化任务。
此简化版 PoC 展示了如何绕过 ms-agent 中 Shell 工具的 check_safe() 函数,使用 Python 建立反向 shell。
nc(netcat)运行 PoC 以验证命令是否绕过安全检查。 预期输出:✓ 绕过成功 - 该命令通过所有安全检查
打开一个新的终端窗口并运行:
nc -l 1111
这将在端口 1111 上启动一个监听器。保持此终端窗口打开并处于等待状态。
在原始终端中运行:
./reverse_shell_poc.py --execute
当提示时,输入 yes 并按回车键。
切换到带有 netcat 监听器的终端(来自步骤 2)。您现在应该会看到一个 shell 提示符!
尝试如下命令:
whoami - 查看您的用户名pwd - 查看当前目录ls - 列出文件exit - 关闭连接python3 执行任意代码python3 不在被阻止的命令列表中check_safe() 函数会阻止如下命令:
sudo、rm -rf /、chmod、curl | bash 等但它不会阻止:
python3(任意代码执行)nc(netcat - 网络连接)perl、ruby、node(其他解释器)这证明了一个严重漏洞:
测试完成后,您可以删除测试目录:
rm -rf /tmp/test_output
这是一个仅限本地主机的演示(连接到 127.0.0.1)。此 PoC 有意避免远程连接以降低滥用风险。