redyank/CVE-2026-33154

GitHub: redyank/CVE-2026-33154

CVE-2026-33154的PoC代码,演示如何通过污染Dynaconf配置源利用Jinja2模板注入实现RCE。

Stars: 0 | Forks: 1

# Dynaconf SSTI 漏洞报告 ## 概述 Dynaconf 存在 **服务端模板注入 (SSTI)** 漏洞,原因是 `__@Jinja__` 解析器中的模板评估不安全。当安装了 `jinja2` 包时,Dynaconf 会 **在没有沙箱环境的情况下** 评估嵌入在配置值中的模板表达式。 如果攻击者能够影响以下配置源: - 环境变量 - `.env` 文件 - 容器环境配置 - CI/CD 密钥 ...他们就可以在主机系统上 **执行任意 OS 命令**。此外,`__@Format__` 解析器允许对象图遍历,这可能会暴露敏感的运行时对象和环境变量。 ## 详情 该漏洞的产生是因为 Dynaconf 的字符串解析器缺乏适当的安全边界。 ### 1. `__@Jinja__` 解析器 `__@Jinja__` 解析器使用完整的 Jinja2 评估来渲染模板。然而,渲染上下文 **并未沙箱化**,这允许攻击者访问 Python 的内部属性。利用诸如 `cycler` 之类的对象,攻击者可以到达 Python 的全局变量并导入 `os` 模块。 **攻击路径示例:** ``` cycler → __init__ → __globals__ → os → popen() ``` 这会导致 **任意命令执行**。 ### 2. `__@Format__` 解析器 `__@Format__` 解析器使用内部对象执行 Python 字符串格式化。这允许攻击者遍历 Python 的对象图并访问敏感的运行时对象。 **遍历示例:** ``` {this.__class__.__init__.__globals__[os].environ} ``` 这可能会暴露: - API 密钥 - 数据库凭证 - 内部服务令牌 - 环境密钥 ## 概念验证 (PoC) ``` import os from dynaconf import Dynaconf # 恶意配置注入 os.environ["DYNACONF_RCE"] = "@jinja {{ cycler.__init__.__globals__.os.popen('id').read() }}" settings = Dynaconf() print("[!] Command Execution Result:") print(settings.RCE) ``` ## 影响 成功利用此漏洞可让攻击者: - 在主机系统上执行任意 OS 命令 - 访问敏感的环境变量 - 窃取应用密钥 - 完全攻陷正在运行的应用进程 由于配置值可能源自 CI/CD 流水线、容器编排系统或环境注入,因此在实际部署中,此漏洞可能变得 **可远程利用**。 ## 修复 / 缓解措施 ### 1. 使用 Jinja2 沙箱进行模板渲染 ``` from jinja2.sandbox import SandboxedEnvironment env = SandboxedEnvironment() template = env.from_string("{{ config_value }}") safe_value = template.render(config_value=user_input) ``` ### 2. 将 `__@Format__` 的使用限制在受信任的值 ``` safe_value = "{name}".format(name=trusted_name) ``` ## 参考 - [GHSA-pxrr-hq57-q35p](https://github.com/advisories/GHSA-pxrr-hq57-q35p) - [CVE-2026-33154 — NVD](https://nvd.nist.gov/vuln/detail/CVE-2026-33154) - [dynaconf/dynaconf@2fbb45e](https://github.com/dynaconf/dynaconf/commit/2fbb45e) - [Dynaconf Release 3.2.13](https://github.com/dynaconf/dynaconf/releases/tag/3.2.13)
标签:CI/CD安全, CVE-2026-33154, Dynaconf, Jinja2, Llama, OWASP Top 10, PoC, Python, RCE, SSTI, 不安全的反序列化, 文档安全, 无后门, 暴力破解, 服务端模板注入, 沙箱逃逸, 环境变量漏洞, 编程工具, 远程代码执行, 逆向工具, 配置注入