事件经过
Microsoft 的 Prompty 基于 markdown 的 LLM 提示格式加载器继承了 gray-matter 的可执行前置matter功能,允许恶意 .prompty 文件(例如从仓库共享或下载的文件)在被应用程序解析时立即运行任意 JavaScript。
影响分析
Prompty 文件旨在成为 LLM 应用程序的便携式、可共享的提示定义;如果团队引入第三方 .prompty 文件(例如来自共享提示库或仓库),期望仅获得文本模板,他们反而会获得任意代码执行——这是新兴的提示即代码生态系统特有的供应链风险。
攻击途径
@prompty/core 加载器使用 gray-matter 库解析 .prompty 前置matter,但未禁用其可执行的 'js'/'javascript' 前置matter引擎,因此包含 JS 前置matter的攻击者控制的 .prompty 文件在被运行时加载时会执行任意 JavaScript。
受影响系统
@prompty/core TypeScript 加载器,2.0.0-alpha.1 – 2.0.0-beta.3
缓解措施
升级到 Prompty 2.0.0-beta.3 或更高版本,该版本禁用了可执行前置matter引擎。