Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-8053-MongoDB — 描述“CVE-2026-8053检查器”-20260518-16h30-GMT+7 | Kitploit
工具/GitHubGitHub/mgiay/cve-2026-8053-mongodb
漏洞扫描器漏洞分析配置审计云安全DevSecOps数据库安全
GitHubmgiay/cve-2026-8053-mongodb

CVE-2026-8053-MongoDB

描述“CVE-2026-8053检查器”-20260518-16h30-GMT+7

查看仓库
73个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-8053 — MongoDB Server 越界写入

概述

属性值
CVE 编号CVE-2026-8053
技术名称FlatBSON 重复字段索引漂移
漏洞类型CWE-787 — 越界写入
CVSS v4.08.7 (高)
CVSS v3.18.8 (高)
EPSS0.064% (第 20 百分位 — 利用概率低)
KEV (已知被利用)未记录
发现日期MongoDB 内部
公开日期2026-05-12
保留日期2026-05-06
NVD 状态已发布 / 等待分析

详细描述

根本原因

漏洞存在于 MongoDB Server 的 时间序列集合系统 中。具体来说,错误由以下原因引起:

在 时间序列桶目录 内部,字段名称 与 索引 之间的映射机制存在 不一致性。

当该映射发生漂移时,写入操作可能导致 mongod 进程中的 越界写入。在某些条件下,这可能升级为 任意代码执行。

技术背景 — FlatBSON 和时间序列桶目录

  • FlatBSON 是 MongoDB 内部使用的二进制序列化格式,比标准 BSON 更适用于时间序列操作。
  • 时间序列桶目录 是管理“桶”的数据结构——每个桶包含按时间分组的多个时间序列数据点。
  • 在该目录内部,维护了一个字段名称到索引的映射表,用于快速访问字段。当该映射出现 重复或索引错误 时,后续的写入操作可能将数据写入已分配内存范围之外。

利用条件


受影响版本

注意: 5.0 之前的版本 (4.x, 3.x) 已停止支持 (EOL)。如果您正在运行这些版本,请紧急升级到受支持的分支。


攻击向量 (CVSS v4.0)```

CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

root@kitploit:~
| 组件 | 值 | 含义 |
|------------|---------|---------|
| AV (Attack Vector) | **Network (N)** | 通过网络远程利用 |
| AC (Attack Complexity) | **Low (L)** | 无需特殊条件 |
| AT (Attack Requirements) | **None (N)** | 无前提要求 |
| PR (Privileges Required) | **Low (L)** | 只需要具有写入权限的用户 |
| UI (User Interaction) | **None (N)** | 无需受害者交互 |
| VC/VI/VA (Vulnerable System) | **High / High / High** | 整个CIA三元组受影响 |
| SC/SI/SA (Subsequent System) | **None** | 不影响其他系统 |

---

## 修复指南

### 1. 主要措施:升级 MongoDB Server

这是**唯一且彻底的**措施。将 MongoDB Server 升级到相应的已修补版本:```bash
# Kiểm tra phiên bản hiện tại
mongod --version

# Debian/Ubuntu — nâng cấp qua APT
sudo apt update
sudo apt install -y mongodb-org=<phiên-bản-đã-vá>

# RHEL/CentOS/Rocky — nâng cấp qua YUM/DNF
sudo yum update mongodb-org-<phiên-bản-đã-vá>

# Docker — pull image mới
docker pull mongo:<phiên-bản-đã-vá>

各分支的具体补丁版本:

2. 临时缓解措施(如果无法立即升级)

  • 限制写入权限 — 审查并撤销对数据库用户不必要的写入权限: ```javascript // Kiểm tra user có quyền ghi vào time-series collections db.getUsers({ showCredentials: false });
    root@kitploit:~
  • 日志监控 — 监控 MongoDB 日志以检测异常迹象: ```bash tail -f /var/log/mongodb/mongod.log | grep -iE "error|assert|abort|segfault"
    root@kitploit:~
  • Network segmentation — 限制对MongoDB端口(默认27017)的网络访问,只允许来自受信任的IP: ```bash

    Sử dụng firewall (iptables / nftables / firewalld)

    sudo ufw allow from to any port 27017
    root@kitploit:~
  • 开启认证 — 确保MongoDB在mongod.conf中配置为authorization: enabled: ```yaml security: authorization: enabled
    root@kitploit:~
  • 暂时禁用时间序列集合 — 如果不使用时间序列功能,考虑禁用或不要创建时间序列集合,直到补丁完成。

3. 升级后检查```bash

1. Xác nhận phiên bản mới

mongod --version

2. Kiểm tra trạng thái service

sudo systemctl status mongod

3. Kết nối và kiểm tra

mongosh --eval "db.version()"

4. Chạy script scan (đính kèm trong repo này)

sudo bash CVE-2026-8053-MongoDB-Fixed.sh

root@kitploit:~
---

## 扫描工具:`CVE-2026-8053-MongoDB-Fixed.sh`

自动扫描和评估 MongoDB 服务器是否受 CVE-2026-8053 影响的 bash 脚本。该脚本设计为在**生产环境**中安全运行——所有操作均为**只读**模式,不会向 MongoDB 写入任何数据。

### 主要功能

| 功能 | 描述 |
|-----------|-------|
| 安装检测 | 自动查找 `mongod` 和 shell(`mongosh`/`mongo`)路径 |
| 版本对比 | 将已安装版本与受影响版本列表(6 个分支)进行对比 |
| EOL 检测 | 如果 MongoDB 属于生命周期结束的分支(4.4 及以下),则发出警告 |
| 时间序列扫描 | 列出整个集群中所有时间序列集合 |
| 权限检查 | 列出具有写入权限的用户——可能利用漏洞的对象 |
| 安全检查 | 评估 `authorization`、`bindIp`、`TLS/SSL` 配置 |
| 支持复制集 | 通过连接字符串 `mongodb://host:port/?replicaSet=name` 连接 |
| 输出多样化 | 普通模式(颜色)、静默模式(退出码)、JSON 模式(CI/CD) |
| 绝对安全 | **0 写入操作** — 所有 MongoDB 命令均为只读 |

### 系统要求

| 要求 | 详情 |
|----------|----------|
| 操作系统 | Linux (Ubuntu, Debian, RHEL, CentOS, Rocky, Alma, 等) |
| Bash | ≥ 4.0(支持关联数组) |
| MongoDB Shell | `mongosh`(推荐)或 `mongo`(旧版) |
| 操作系统权限 | `sudo`/`root`(用于读取配置文件 `/etc/mongod.conf`) |
| MongoDB 权限 | 具有读取 `system.users` 和执行 `listDatabases` 权限的用户 |

### 命令行参数(CLI Options)

| 短选项 | 长选项 | 参数 | 默认值 | 描述 |
|-------------|------------|---------|----------|-------|
| `-h` | `--help` | — | — | 显示帮助并退出 |
| `-q` | `--quiet` | — | `false` | 仅输出主要结果,使用退出码确定状态 |
| `-j` | `--json` | — | `false` | 以 JSON 格式输出结果(适用于 CI/CD 流水线) |
| `-H` | `--host` | `HOST` | `localhost` | MongoDB 服务器地址 |
| `-P` | `--port` | `PORT` | `27017` | MongoDB 端口 |
| `-u` | `--user` | `USER` | `super_admin` | MongoDB 登录用户名 |
| `-p` | `--pass` | `PASS` | *(内部默认值)* | MongoDB 密码 |
| `-r` | `--replica-set` | `NAME` | `rs_cams` | 复制集名称(如果有) |
| — | `--auth-db` | `DB` | `admin` | 认证数据库 |
| — | `--no-color` | — | `false` | 禁用输出中的 ANSI 颜色 |

### 6 步扫描流程

脚本依次执行 6 个步骤。每个步骤都包含状态日志 `[INFO]` / `[OK]` / `[WARN]` / `[ERROR]`。```
Bước 1: Phát hiện MongoDB installation
  ├─ Tìm mongod trong $PATH
  ├─ Duyệt các thư mục phổ biến:
  │   /usr/bin, /usr/local/bin, /opt/mongodb/bin, /usr/lib/mongodb, /snap/bin
  └─ Thất bại → exit 0 (không cài đặt = không bị ảnh hưởng)

Bước 2: Lấy phiên bản MongoDB
  ├─ Chạy: mongod --version
  ├─ Parse output: "db version v6.0.15" → "6.0.15"
  └─ Thất bại → exit 2 (lỗi không xác định)

Bước 3: So sánh phiên bản với danh sách bị ảnh hưởng
  ├─ Tách major.minor.patch bằng regex
  ├─ Kiểm tra EOL (4.4, 4.2, 4.0, 3.6, ...)
  ├─ Đối chiếu với bảng PATCHED_VERSIONS:
  │   ┌────────────┬──────────────┬────────┐
  │   │ Nhánh      │ Ngưỡng vá    │ Ví dụ  │
  │   ├────────────┼──────────────┼────────┤
  │   │ 5.0        │ patch ≥ 33   │ 5.0.33 │
  │   │ 6.0        │ patch ≥ 28   │ 6.0.28 │
  │   │ 7.0        │ patch ≥ 34   │ 7.0.34 │
  │   │ 8.0        │ patch ≥ 23   │ 8.0.23 │
  │   │ 8.2        │ patch ≥ 9    │ 8.2.9  │
  │   │ 8.3        │ patch ≥ 2    │ 8.3.2  │
  │   └────────────┴──────────────┴────────┘
  ├─ Nhánh ≥ 8.4 → mặc định AN TOÀN
  └─ Kết quả: SAFE | VULNERABLE | EOL | UNKNOWN

Bước 4: Kiểm tra trạng thái mongod
  ├─ pgrep -x mongod
  ├─ systemctl is-active mongod
  ├─ ss / netstat kiểm tra port đang listen
  └─ Kết quả: đang chạy / không chạy

Bước 5: Kiểm tra time-series collections & quyền người dùng
  │ (chỉ thực hiện nếu mongod đang chạy và kết nối được)
  ├─ check_timeseries_collections():
  │   ├─ listDatabases → lấy danh sách tất cả database
  │   ├─ getCollectionInfos({ type: "timeseries" }) → từng database
  │   └─ Output: JSON array [{ database, collection, timeseries }]
  │
  ├─ check_user_privileges():
  │   ├─ Đọc admin.system.users
  │   ├─ Lọc user có role ghi: readWrite, dbOwner, root,
  │   │   readWriteAnyDatabase, dbAdmin, userAdmin, backup,
  │   │   restore, clusterAdmin, hostManager, __system
  │   ├─ Output: JSON array [{ user, database, roles }]
  │   └─ Đây là những user CÓ THỂ khai thác lỗ hổng
  │
  └─ Kết nối thất bại → gợi ý dùng -u -p để xác thực

Bước 6: Kiểm tra cấu hình bảo mật
  ├─ Tìm file mongod.conf (/etc/mongod.conf, /etc/mongodb.conf, ...)
  ├─ Fallback: đọc /proc/<pid>/cmdline nếu không tìm thấy file
  ├─ Kiểm tra 3 hạng mục:
  │   ├─ authorization: enabled  → [OK] / [WARN]
  │   ├─ bindIp: 127.0.0.1       → [OK] / [WARN] (public)
  │   └─ TLS/SSL: requireTLS     → [OK] / [WARN]
  └─ Kết quả: "OK" hoặc danh sách vấn đề (authorization_disabled, ...)

主要函数详情

detect_mongod_path()

检测系统上 mongod 二进制文件的路径。

  • 优先级 1: 通过 command -v mongod 在 $PATH 中查找
  • 优先级 2: 遍历固定目录列表:/usr/bin、/usr/local/bin、/opt/mongodb/bin、/usr/lib/mongodb、/snap/bin
  • 返回: 绝对路径或空值(未找到)

get_mongod_version()

从 mongod --version 的输出中提取版本号。

  • 输入: mongod 路径
  • 处理: 解析第一行,使用正则表达式 v?\K\d+\.\d+\.\d+
  • 示例: db version v6.0.15 → 6.0.15
  • 返回: X.Y.Z 格式的版本字符串或空值

check_version_vulnerable()

将 MongoDB 版本与漏洞数据库进行比较。

  • 逻辑:
    1. 将版本拆分为 major.minor 和 patch,使用正则表达式 ^(\d+)\.(\d+)\.(\d+)$
    2. 检查 EOL:与 EOL_BRANCHES[] 对照
    3. 查询 PATCHED_VERSIONS[associative_array]
    4. 如果分支不在数据库中 → 检查是否 ≥ 8.4(默认安全)
    5. 算术比较:patch < threshold → 存在漏洞
  • 退出码: 0 = 安全, 1 = 存在漏洞, 2 = 已终止/未知

build_mongo_cmd()

构建完整的 MongoDB Shell 连接命令。

  • Shell: mongosh(优先)→ mongo(回退)
  • 副本集: 如果存在 MONGOD_REPLICA_SET,则使用连接字符串 "mongodb://HOST:PORT/?replicaSet=NAME" — --host / --port 参数被忽略(已在 URI 中)
  • 独立节点: 拼接 --host(如果非 localhost)和 --port(如果非 27017)
  • 认证: --username、--password、--authenticationDatabase(如果设置了 MONGOD_USER)
  • 输出示例: ``` mongosh --quiet "mongodb://localhost:27017/?replicaSet=rs_cams"
    --username super_admin --password *** --authenticationDatabase admin
    root@kitploit:~

check_timeseries_collections()

扫描整个集群以查找时间序列集合。

  • 流程:
    1. adminDb.adminCommand({ listDatabases: 1, nameOnly: true }) — 列出所有数据库
    2. 对于每个数据库: db.getCollectionInfos({ type: "timeseries" }) — 过滤时间序列
    3. 汇总结果: { database, collection, timeseries }
  • Timeout: 30秒
  • Output: JSON array — 空 [] 如果没有时间序列集合

check_user_privileges()

列出具有写入权限的用户 — 潜在的CVE利用对象。

  • 数据源: admin.system.users.find()
  • 高风险角色列表:
    • readWrite — 写入特定数据库
    • readWriteAnyDatabase — 写入所有数据库
    • dbAdmin, dbOwner — 数据库管理
    • userAdmin, userAdminAnyDatabase — 用户管理
    • root — 完全权限
    • __system, backup, restore, clusterAdmin, hostManager — 系统权限
  • Output: JSON array [{ user, database, roles }]

check_security_config()

从 mongod.conf 文件评估安全配置。

  • 查找配置文件: 遍历标准目录列表 → 回退读取 /proc/<pid>/cmdline
  • 3个检查项目:

输出模式

脚本支持3种输出模式,适用于不同目的:

1. 普通模式(默认)```bash

sudo bash CVE-2026-8053-MongoDB-Fixed.sh

root@kitploit:~
完整输出,带ANSI颜色:banner、逐步日志、汇总表、详细建议。```
==============================================
  CVE-2026-8053 Scanner v1.0.0
  CVE-2026-8053: FlatBSON Duplicate Field Index Drift
  Ngay quet: 2026-05-18 14:30:00
==============================================

[INFO] Buoc 1/6: Phat hien MongoDB installation...
[OK] Tim thay mongod tai: /usr/bin/mongod
[INFO] Buoc 2/6: Kiem tra phien ban MongoDB...
[INFO] Phien ban cai dat: 7.0.32
[INFO] Buoc 3/6: So sanh voi danh sach phien ban bi anh huong...
[ERROR] MongoDB 7.0.32 BI ANH HUONG boi CVE-2026-8053 — CAN NANG CAP NGAY!
...

==============================================
  KET QUA QUET
==============================================

  Phien ban MongoDB       : 7.0.32
  mongod dang chay        : Co
  Replica Set             : rs_cams
  Trang thai CVE-2026-8053: NGUY HIEM — CO LO HONG

==============================================
  KHUYEN NGHI
==============================================

  [!!!] HANH DONG KHAN CAP:
  1. Nang cap MongoDB Server NGAY LAP TUC len phien ban da va:
     -> Nang cap len 7.0.34 hoac moi hon
  ...

2. 安静模式 (-q)```bash

sudo bash CVE-2026-8053-MongoDB-Fixed.sh -q

root@kitploit:~
仅显示 `[ERROR]` / `[WARN]` / `[OK]` 行 — 适合快速检查。仅依赖 **exit code**:

| Exit Code | 含义 | 操作 |
|-----------|------|------|
| `0` | **安全** — MongoDB 已修补 | 无需操作 |
| `1` | **危险** — 存在漏洞 | 立即升级 |
| `2` | **EOL / 错误** — 版本已结束生命周期或识别错误 | 紧急升级 |

#### 3. JSON 模式 (`-j`)```bash
sudo bash CVE-2026-8053-MongoDB-Fixed.sh -j -q

Output thuần JSON — phù hợp tích hợp CI/CD pipeline, monitoring system.```json { "cve": "CVE-2026-8053", "title": "FlatBSON Duplicate Field Index Drift", "scan_date": "2026-05-18T14:30:00+07:00", "host": "localhost", "port": "27017", "replica_set": "rs_cams", "mongodb": { "installed": true, "version": "7.0.32", "running": true, "vulnerable": true, "status": "VULNERABLE" }, "time_series_collections": [ { "database": "iot", "collection": "sensor_readings", "timeseries": { "timeField": "ts", "metaField": "sensorId" } } ], "risky_users": [ { "user": "app_user", "database": "admin", "roles": ["readWriteAnyDatabase"] }, { "user": "super_admin", "database": "admin", "roles": ["root"] } ], "security_config": ["authorization_disabled", "tls_disabled"], "remediation": { "action": "UPGRADE", "patched_versions": { "5.0": "5.0.33", "6.0": "6.0.28", "7.0": "7.0.34", "8.0": "8.0.23", "8.2": "8.2.9", "8.3": "8.3.2" } } }

root@kitploit:~
### 安全保证 — 只读

脚本**不会对MongoDB集群执行任何写操作**。所使用的全部MongoDB命令:

| 命令 | 目的 | 类型 |
|------|----------|------|
| `db.version()` | 检查连接和运行时版本 | **Read** |
| `adminCommand({ listDatabases: 1, nameOnly: true })` | 列出数据库名称 | **Read** (Admin Command) |
| `db.getCollectionInfos({ type: "timeseries" })` | 获取集合元数据 | **Read** |
| `admin.system.users.find({})` | 读取用户和角色列表 | **Read** (System Collection) |

没有`insert`、`update`、`delete`、`createCollection`、`drop`、`grantRolesToUser`、`replSetReconfig`或任何写命令。**脚本在生产集群上运行是安全的。**

### 使用示例```bash
# 1. Quét cơ bản trên localhost (yêu cầu sudo để đọc /etc/mongod.conf)
sudo bash CVE-2026-8053-MongoDB-Fixed.sh

# 2. Quét với thông tin xác thực tùy chỉnh
sudo bash CVE-2026-8053-MongoDB-Fixed.sh \
  -H 10.0.0.5 -P 27017 \
  -u myadmin -p 'MyStr0ngP@ss'

# 3. Quét replica set với auth
sudo bash CVE-2026-8053-MongoDB-Fixed.sh \
  -H 10.0.0.5 -P 27017 \
  -u app_user -p 'pass123' \
  -r rs_production

# 4. Chỉ lấy exit code, không hiển thị log (dùng trong script)
sudo bash CVE-2026-8053-MongoDB-Fixed.sh -q
if [ $? -eq 0 ]; then
    echo "MongoDB an toan"
else
    echo "CAN NANG CAP MongoDB NGAY!"
fi

# 5. Output JSON cho CI/CD pipeline
sudo bash CVE-2026-8053-MongoDB-Fixed.sh -q -j > scan_result.json

# 6. Dùng jq để trích xuất thông tin từ JSON
sudo bash CVE-2026-8053-MongoDB-Fixed.sh -q -j | jq -r '.mongodb.status'
sudo bash CVE-2026-8053-MongoDB-Fixed.sh -q -j | jq '.risky_users | length'

# 7. Tích hợp vào cron job (quét hàng ngày lúc 7h sáng)
# Thêm vào /etc/cron.d/mongodb-cve-scan:
# 0 7 * * * root /opt/scripts/CVE-2026-8053-MongoDB-Fixed.sh -q -j | \
#   tee /var/log/mongodb-cve-scan/$(date +\%Y\%m\%d).json

集成监控 (Monitoring)```bash

Nagios / Icinga / Zabbix — check qua exit code

/opt/scripts/CVE-2026-8053-MongoDB-Fixed.sh -q exit $? # 0=OK, 1=CRITICAL, 2=WARNING

Prometheus node_exporter textfile collector

sudo bash CVE-2026-8053-MongoDB-Fixed.sh -q -j |
jq '{cve_2026_8053_vulnerable: (.mongodb.vulnerable | if . then 1 else 0 end), cve_2026_8053_risky_users: (.risky_users | length), cve_2026_8053_ts_collections: (.time_series_collections | length)}' \

/var/lib/node_exporter/textfile_collector/mongodb_cve.prom

root@kitploit:~
---

## 实际影响

| 方面 | 评估 |
|-----------|----------|
| **漏洞利用可用性** | 尚未公开 PoC(截至发布时) |
| **利用难度** | 中等 —— 需深入了解 FlatBSON 内部机制 |
| **影响范围** | 所有 MongoDB Server 部署了时间序列集合的场景 |
| **高风险对象** | 允许多个用户具有写入权限的系统、向互联网暴露的 MongoDB |

---

## 时间线

| 日期 | 事件 |
|------|------|
| 2026年5月6日 | CVE 被保留 |
| 2026年5月12日 | MongoDB 发布安全公告并发布补丁 |
| 2026年5月12日 | GitHub Advisory (GHSA-pr63-cc36-q84h) 公开发布 |
| 2026年5月13日 | NVD、Tenable、Snyk、Debian 安全追踪器更新 |

---

## 参考资料

- [MongoDB Jira — SERVER-126021](https://jira.mongodb.org/browse/SERVER-126021)
- [NVD — CVE-2026-8053](https://nvd.nist.gov/vuln/detail/CVE-2026-8053)
- [GitHub Advisory — GHSA-pr63-cc36-q84h](https://github.com/advisories/ghsa-pr63-cc36-q84h)
- [MongoDB 社区论坛 — 2026年5月重要补丁](https://www.mongodb.com/community/forums/t/important-mongodb-patch-available-may-2026/339172)
- [Tenable — CVE-2026-8053](https://www.tenable.com/cve/CVE-2026-8053)
- [Snyk — SNYK-UNMANAGED-MONGODB-16678063](https://security.snyk.io/vuln/SNYK-UNMANAGED-MONGODB-16678063)
- [Debian 安全追踪器 — CVE-2026-8053](https://security-tracker.debian.org/tracker/CVE-2026-8053)
- [Cyber Security News — MongoDB 严重 RCE 漏洞](https://cybersecuritynews.com/mongodb-rce-vulnerability/)
下载工具
条件描述
身份验证需要 — 攻击者必须拥有有效的 MongoDB 账户
权限需要数据库写入权限
用户交互不需要
网络可通过网络远程利用
复杂度低
MongoDB 分支受影响版本从版本开始修复
5.0< 5.0.33≥ 5.0.33
6.0< 6.0.28≥ 6.0.28
7.0< 7.0.34≥ 7.0.34
8.0< 8.0.23≥ 8.0.23
8.2< 8.2.9≥ 8.2.9
8.3< 8.3.2≥ 8.3.2
分支示例升级命令(APT)
5.0sudo apt install -y mongodb-org=5.0.33
6.0sudo apt install -y mongodb-org=6.0.28
7.0sudo apt install -y mongodb-org=7.0.34
8.0sudo apt install -y mongodb-org=8.0.23
8.2sudo apt install -y mongodb-org=8.2.9
8.3sudo apt install -y mongodb-org=8.3.2
  • Timeout: 30秒
  • 项目Grep 模式缺失风险
    Authorizationauthorization: enabled任何人都可以无需认证连接
    Bind IPbindIp: 127.0.0.1 或 bindIpAll: false暴露到公共网络
    TLS/SSLmode: requireTLS 或 ssl: requireSSL数据传输未加密
  • 返回: "OK" (完美) 或问题列表 (例如: authorization_disabled\ntls_disabled)