前言
OctoPrint是一个开源的3D打印机控制器应用程序,它为连接的打印机提供Web 界面。它可以显示打印机的状态和关键参数,并支持安排打印作业和远程控制打印机。
描述
Numen安全实验室漏洞研究员在OctoPrint小于等于1.9.2版本中发现打印作业执时配置特制的GCODE语言脚本,允许在该脚本渲染期间执行任意代码。
CVE编号
CVE-2023-41047
影响版本
< 1.9.3
分析
src/octoprint/server/api/settings.py#getSettings()
对应
将gcode传递到s对象的loadScript
函数
s对象来自
src/octoprint/settings/__init__.py#loadScript()
使用template.render
函数进行渲染。
template
对象来自_get_script_template
函数。
漏洞触发源于 gcode 的不安全渲染,在 OctoPrint 中没有采取任何安全措施,从而导致了这个问题。
修复
1.9.3版本添加安全沙箱
时间线
* 2023-8-31 向OctoPrint团队报告漏洞
* 2023-8-31 收到 OctoPrint 团队的回复,确认漏洞
* 2023-10-10 修复安全漏洞,并发布OctoPrint 1.9.3版本
* 2023-10-10 公开CVE
互联网影响
通过shodan、fofa发现了20000多个暴露的OctoPrint。
参考
https://github.com/OctoPrint/OctoPrint/releases/tag/1.9.3
https://github.com/OctoPrint/OctoPrint/security/advisories/GHSA-fwfg-vprh-97ph
https://github.com/OctoPrint/OctoPrint/commit/d0072cff894509c77e243d6562245ad3079e17db
https://nvd.nist.gov/vuln/detail/CVE-2023-41047
关于 Numen Cyber
Numen Cyber 是链上威胁检测与防御的先驱,团队成员拥有在亚马逊、华为、百度、奇虎360等众多知名大厂与 OKlink,知道创宇,成都链安等知名 Web3 主体安全岗位从业经历。
拥有 Web2+Web3 多重安全技能储备的 Numen Cyber 旗下拥有 ImmunX 和 Leukocyte 两款安全产品,分别可在应用层和物理层为 Web3 项目提供保护。其中 ImmunX 包含安全策略开放市场和合约防火墙等独创功能,可以为 Web3 生态提供一站式全方位的保护;Leukocyte 则是保护服务器安全,实时检测黑客针对服务器的各种攻击并自动阻断、报警。
目前 Numen Cyber 的合作伙伴包括不限于 Binance,Cobo,Suiet 等,也包括中国移动、中国电信、中国联通,以及阿里云、腾讯、华为、亚马逊、微软等。
Numen 官网
GitHub
https://twitter.com/@numencyber
Medium
https://medium.com/@numencyberlabs