CVE-2024-21511
— 神龙十问 AI 深度分析摘要
CVSS 9.8 · Critical
本页是神龙十问 AI 深度分析的
摘要版。完整版(更长回答、追问、相关漏洞)需
登录查看 →
Q1这个漏洞是什么?(本质+后果)
🚨 **本质**:Node.js MySQL 客户端 `mysql2` 存在 **任意代码注入** 漏洞。
💥 **后果**:攻击者可利用 **timezone** 参数处理不当,执行恶意代码,导致系统被完全控制。
Q2根本原因?(CWE/缺陷点)
🔍 **CWE**:CWE-94 (代码注入)。
📍 **缺陷点**:`readCodeFor` 函数中,对调用本机 MySQL 服务器 date/time 函数时的 **timezone 参数** 清理不正确。
Q3影响谁?(版本/组件)
📦 **组件**:`mysql2` (Andrey Sidorov 开发的 Node.js MySQL 客户端)。
📉 **受影响版本**:**2.3.9.7 之前** 的所有版本。
Q4黑客能干啥?(权限/数据)
👑 **权限**:高 (CVSS 评分极高)。
📊 **数据/影响**:
- **C:H** (机密性高,数据泄露)
- **I:H** (完整性高,数据篡改)
- **A:H** (可用性高,服务中断)
- 直接导致 **任意代码执行**。
Q5利用门槛高吗?(认证/配置)
🚪 **利用门槛**:**低**。
- **AV:N** (网络远程攻击)
- **AC:L** (攻击复杂度低)
- **PR:N** (无需认证)
- **UI:N** (无需用户交互)
👉 远程匿名即可利用。
Q6有现成Exp吗?(PoC/在野利用)
🧪 **Exp/PoC**:数据中未提供公开 PoC 或 **在野利用** 报告。
🔗 但官方已发布修复提交和 PR,建议参考 GitHub 链接确认细节。
Q7怎么自查?(特征/扫描)
🔎 **自查方法**:
1. 检查 `package.json` 或 `node_modules`。
2. 确认 `mysql2` 版本是否 **< 3.9.7**。
3. 扫描工具检测 CVE-2024-21511。
Q8官方修了吗?(补丁/缓解)
🛡️ **官方修复**:**已修复**。
📌 **修复版本**:**v3.9.7**。
🔗 参考:GitHub Release v3.9.7 及 PR #2608。
Q9没补丁咋办?(临时规避)
⚠️ **临时规避**:
1. **升级**至 v3.9.7 或更高版本(首选)。
2. 若无法升级,考虑 **隔离** 受影响的 Node.js 服务。
3. 审查代码中是否直接传递不可信的 timezone 参数。
Q10急不急?(优先级建议)
🔥 **优先级**:**紧急 (Critical)**。
- CVSS 向量显示 **C/I/A 均为高 (H)**。
- 无需认证即可远程利用。
- **立即升级** 到 v3.9.7+ 以消除风险。