CVE-2026-33587Open Notebook v1.8.3 版本中存在一个严重的安全漏洞,该漏洞被分配为 CVE-2026-33587,CVSS v3.1 评分为满分 10.0。其根本原因是应用程序在处理用户创建的转换功能时,未能对用户输入进行充分的清理和验证。攻击者可以利用这一缺陷,通过发送特制的恶意载荷触发服务端模板注入(SSTI)。由于无需认证且无需用户交互,远程攻击者可借此在运行 Open Notebook 的 Docker 容器中执行任意 Python 代码,并进一步执行操作系统命令。该漏洞对系统的机密性、完整性和可用性造成了极高的威胁,建议用户立即采取补救措施。
该漏洞的核心技术原理在于 Open Notebook 的后端模板引擎在渲染用户输入时未实施沙箱隔离或输入过滤。当用户在“用户创建转换”功能中提交数据时,应用直接将其作为模板上下文的一部分进行处理。攻击者可以构造包含模板语法(如 Jinja2 语法)的恶意字符串。利用过程中,攻击者首先通过模板上下文中的对象访问 Python 的基础类,利用 `__class__`、`__mro__` 和 `__subclasses__` 等魔术方法遍历加载的模块列表,寻找危险类(如 `os._wrap_close` 或 `subprocess.Popen`)。一旦定位到可执行命令的类,攻击器即可构建 Payload 调用系统命令(如 `id`, `whoami` 或反弹 Shell)。由于 CVSS 向量包含 S:C(范围变更),利用该漏洞不仅影响应用本身,还可能导致底层 Docker 容器被完全控制,进而威胁宿主机安全或其他容器。