CVE-2022-29078 — 神龙十问 AI 深度分析摘要
本页是神龙十问 AI 深度分析的
摘要版。完整版(更长回答、追问、相关漏洞)需
登录查看 →Q1这个漏洞是什么?(本质+后果)
🚨 **本质**:EJS 模板引擎存在**服务器端模板注入 (SSTI)** 漏洞。 💥 **后果**:攻击者可注入恶意代码,导致**远程代码执行 (RCE)**,完全控制服务器。
Q2根本原因?(CWE/缺陷点)
🔍 **缺陷点**:`settings[view options][outputFunctionName]` 参数未做严格过滤。 📉 **原因**:该参数被解析为内部选项,允许攻击者覆盖 `outputFunctionName`,从而执行任意 OS 命令。
Q3影响谁?(版本/组件)
📦 **组件**:Github ejs (嵌入式 JavaScript 模板)。 📌 **版本**:明确影响 **v3.1.6** 版本。
Q4黑客能干啥?(权限/数据)
👑 **权限**:获得**服务器端最高权限**(如 root)。 📂 **数据**:可读取/篡改任意文件,执行任意系统命令(如 `touch /tmp/pwned`)。
Q5利用门槛高吗?(认证/配置)
🚪 **门槛**:**低**。 🔑 **条件**:无需认证,通过构造恶意 URL 参数即可触发(如 `settings[view options][outputFunctionName]=...`)。
Q6有现成Exp吗?(PoC/在野利用)
💣 **Exp**:**有现成 PoC**。 🔗 多个 GitHub 仓库提供利用代码(如 `miko550/CVE-2022-29078`),支持 Docker 环境一键复现。
Q7怎么自查?(特征/扫描)
🔎 **自查**:检查项目依赖是否包含 **ejs@3.1.6**。 🧪 **测试**:尝试在 URL 参数中注入 `settings[view options][outputFunctionName]` 看是否报错或执行命令。
Q8官方修了吗?(补丁/缓解)
🛡️ **修复**:官方已发布修复版本(参考 `github.com/mde/ejs/releases`)。 ✅ **建议**:升级 EJS 到安全版本。
Q9没补丁咋办?(临时规避)
⚠️ **规避**:若无法升级,需**严格过滤**用户输入。 🚫 **限制**:禁止将用户可控数据传入 `settings` 或 `outputFunctionName` 相关配置。
Q10急不急?(优先级建议)
🔥 **优先级**:**极高 (Critical)**。 ⚡ **理由**:无需认证、远程执行代码、影响核心模板引擎,极易被自动化攻击利用。