CVE-2025-64187OctoPrint是一款开源的3D打印机Web控制界面,允许用户通过浏览器远程监控和控制3D打印过程。该软件在全球范围内被广泛使用,支持众多消费级3D打印机型号。CVE-2025-64187漏洞存在于OctoPrint 1.11.3及更低版本中,攻击者可利用Action Command通知机制注入任意HTML和JavaScript代码。当受害者打印攻击者精心构造的G-code文件时,嵌入的恶意脚本会在受害者浏览器中执行,成功利用此漏洞可导致正在进行的打印任务被中断、敏感配置信息泄露(包括API密钥、打印机设置等),甚至可以在受害者权限范围内执行任意操作。由于该漏洞需要用户交互(打印文件),攻击者通常通过社交工程手段诱骗受害者打开或打印恶意文件。此漏洞已在1.11.4版本中得到修复。
OctoPrint在解析G-code打印文件时,会识别并处理特定的Action Command指令,这些指令用于向用户界面发送通知和弹出提示。漏洞产生的根本原因在于OctoPrint对Action Command内容缺乏充分的输入验证和输出编码。当解析到包含HTML标签或JavaScript代码的Action Command时,系统直接将其渲染到DOM中而未进行安全过滤。攻击者可在G-code文件中插入形如「;@echo M118 action:prompt <script>alert(document.cookie)</script>」的命令,OctoPrint会将script标签作为HTML直接插入页面,导致JavaScript在受害者浏览器上下文中执行。由于攻击利用的是Action Command通知机制,任何能够诱使受害者打印恶意G-code文件的攻击者都可以触发此漏洞,且攻击代码在受害者与OctoPrint实例的会话上下文中执行,可访问该会话的所有数据和执行权限范围内的操作。