攻破 AWS MCP Server 的 Python 沙箱
Breaking the AWS MCP Python Sandbox
AI 导读
安全研究者 xplo1t 公开披露绕过 AWS MCP Server 的 aws___run_script 工具 Python 沙箱、在 AWS Lambda 环境获得系统命令执行的方法。沙箱以 AST 静态校验加运行时代理两层防护拦截危险属性读取,作者利用 Python 3.10 match/case 类模式经 __match_args__ 隐式读取属性的机制绕过校验,再借助沙箱为函数返回的可变代理类读到真实函数的 __globals__,恢复 __import__ 后用 subprocess 执行了 id 命令。逃逸后可读取 Lambda 执行角色的 AWS_ACCESS_KEY_ID 等凭证和沙箱源码,但该角色除 sts:GetCallerIdentity 外的 AWS API 调用均被显式拒绝,凭证属于 AWS 自有账户,测试中未发现可访问其他会话或客户数据。
推荐理由
文章完整拆解了利用 Python match/case 隐式属性读取绕过 AST 校验的沙箱逃逸链,自建代码沙箱的团队可对照检查同类盲点。