
الوصف "CVE-2026-8053 CHECKER"-20260518-16h30-GMT+7
| الخصائص | القيمة |
|---|
| معرف CVE | CVE-2026-8053 |
| الاسم التقني | FlatBSON Duplicate Field Index Drift |
| نوع الثغرة | CWE-787 — كتابة خارج الحدود |
| CVSS v4.0 | 8.7 (عالية) |
| CVSS v3.1 | 8.8 (عالية) |
| EPSS | 0.064% (المئين العشرون — احتمالية استغلال منخفضة) |
| KEV (المستغلة المعروفة) | غير مسجلة |
| تاريخ الاكتشاف | داخلي في MongoDB |
| تاريخ النشر | 12/05/2026 |
| تاريخ الحجز | 06/05/2026 |
| حالة NVD | PUBLISHED / في انتظار التحليل |
توجد الثغرة في نظام مجموعة السلاسل الزمنية (time-series collection) في MongoDB Server. تحديدًا، يحدث الخطأ بسبب:
عدم اتساق في آلية الربط بين اسم الحقل (field name) والفهرس (index) داخل فهرس مجموعات السلاسل الزمنية (time-series bucket catalog).
عندما تنحرف آلية الربط هذه (drift)، يمكن لعملية كتابة أن تسبب كتابة خارج حدود الذاكرة (out-of-bounds write) في عملية mongod. وفي ظروف معينة، يمكن أن يتصاعد هذا إلى تنفيذ تعليمات برمجية عشوائية (Remote Code Execution).
| الشرط | الوصف |
|---|---|
| المصادقة | مطلوبة — يجب أن يمتلك المهاجم حساب MongoDB صالحًا |
| الصلاحيات | يتطلب صلاحية كتابة على قاعدة البيانات |
| تفاعل المستخدم | غير مطلوب |
| الشبكة | قابل للاستغلال عن بُعد عبر الشبكة |
| درجة التعقيد | منخفضة (attack complexity: LOW) |
| فرع 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 |
ملاحظة: الإصدارات الأقدم من 5.0 (4.x، 3.x) وصلت إلى نهاية دورة الحياة (EOL). إذا كنت تشغّل هذه الإصدارات، فأنت بحاجة إلى الترقية العاجلة إلى فرع مدعوم.
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
| المكوّن | القيمة | المعنى |
|------------|---------|---------|
| 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á>
إصدارات التصحيح المحددة لكل فرع:
| الفرع | أمر الترقية النموذجي (APT) |
|---|---|
| 5.0 | sudo apt install -y mongodb-org=5.0.33 |
| 6.0 | sudo apt install -y mongodb-org=6.0.28 |
| 7.0 | sudo apt install -y mongodb-org=7.0.34 |
| 8.0 | sudo apt install -y mongodb-org=8.0.23 |
| 8.2 | sudo apt install -y mongodb-org=8.2.9 |
| 8.3 | sudo apt install -y mongodb-org=8.3.2 |
authorization: enabled في mongod.conf: ```yaml
security:
authorization: enabled
mongod --version
sudo systemctl status mongod
mongosh --eval "db.version()"
sudo bash CVE-2026-8053-MongoDB-Fixed.sh
---
## أداة الفحص: `CVE-2026-8053-MongoDB-Fixed.sh`
نص برمجي Bash يقوم تلقائيًا بفحص وتقييم ما إذا كان خادم MongoDB متأثرًا بـ CVE-2026-8053. صُمم النص البرمجي ليعمل بأمان على **الإنتاج** — جميع العمليات في وضع **للقراءة فقط**، ولا يكتب أي بيانات إلى MongoDB.
### الميزات الرئيسية
| الميزة | الوصف |
|-----------|-------|
| اكتشاف التثبيت | العثور تلقائيًا على مسار `mongod` وshell (`mongosh`/`mongo`) |
| مقارنة الإصدار | مطابقة الإصدار المثبت مع القائمة المتأثرة (6 فروع) |
| اكتشاف نهاية العمر (EOL) | تحذير إذا كان MongoDB ضمن فرع انتهى دعمه (4.4 فما دون) |
| فحص السلاسل الزمنية | إدراج جميع مجموعات السلاسل الزمنية في كامل المجموعة (cluster) |
| التحقق من الصلاحيات | إدراج المستخدمين الذين لديهم صلاحيات الكتابة — الأهداف المحتملة لاستغلال الثغرة |
| التحقق الأمني | تقييم إعدادات `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 الثنائي على النظام.
$PATH باستخدام command -v mongod/usr/bin, /usr/local/bin, /opt/mongodb/bin, /usr/lib/mongodb, /snap/binget_mongod_version()استخراج الإصدار من مخرجات mongod --version.
mongodv?\K\d+\.\d+\.\d+db version v6.0.15 → 6.0.15check_version_vulnerable()مقارنة إصدار MongoDB بقاعدة بيانات الثغرات.
major.minor و patch باستخدام regex ^(\d+)\.(\d+)\.(\d+)$EOL_BRANCHES[]PATCHED_VERSIONS[associative_array]patch < threshold → VULNERABLE0 = SAFE، 1 = VULNERABLE، 2 = EOL/UNKNOWNbuild_mongo_cmd()بناء أمر اتصال MongoDB shell كامل.
mongosh (الأولوية) → mongo (احتياطي)MONGOD_REPLICA_SET، استخدم سلسلة الاتصال "mongodb://HOST:PORT/?replicaSet=NAME" — يتم تجاهل المعاملين --host / --port (لأنهما موجودان بالفعل في URI)--host (إذا كان مختلفًا عن localhost) و --port (إذا كان مختلفًا عن 27017)--username، --password، --authenticationDatabase (إذا تم تعيين MONGOD_USER)check_timeseries_collections()فحص الـ cluster بالكامل للعثور على مجموعات السلاسل الزمنية (time-series collections).
adminDb.adminCommand({ listDatabases: 1, nameOnly: true }) — يسرد جميع قواعد البياناتdb.getCollectionInfos({ type: "timeseries" }) — لتصفية السلاسل الزمنية{ database, collection, timeseries }[] فارغة إذا لم توجد أي مجموعة سلاسل زمنيةcheck_user_privileges()يسرد المستخدمين الذين لديهم صلاحيات الكتابة — أهداف محتملة لاستغلال CVE.
admin.system.users.find()readWrite — كتابة إلى قاعدة بيانات محددةreadWriteAnyDatabase — كتابة إلى جميع قواعد البياناتdbAdmin, dbOwner — إدارة قاعدة البياناتuserAdmin, userAdminAnyDatabase — إدارة المستخدمينroot — صلاحية كاملة__system, backup, restore, clusterAdmin, hostManager — صلاحيات النظام[{ user, database, roles }]check_security_config()تقييم الإعدادات الأمنية من ملف mongod.conf.
/proc/<pid>/cmdline| العنصر | نمط grep | الخطورة عند الغياب |
|---|---|---|
| Authorization | authorization: enabled | يمكن لأي شخص الاتصال بدون مصادقة |
| Bind IP | bindIp: 127.0.0.1 أو bindIpAll: false | معرّض للشبكة العامة |
| TLS/SSL | mode: requireTLS أو ssl: requireSSL | البيانات المنقولة غير مشفرة |
"OK" (مثالي) أو قائمة بالمشاكل (مثل: authorization_disabled\ntls_disabled)يدعم السكربت 3 أوضاع للإخراج، لخدمة أغراض مختلفة:
sudo bash CVE-2026-8053-MongoDB-Fixed.sh
مخرجات كاملة مع ألوان ANSI: بانر، سجلات كل خطوة، جدول ملخص، توصيات مفصلة.```
==============================================
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
...
-q)```bashsudo bash CVE-2026-8053-MongoDB-Fixed.sh -q
يعرض سطور `[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
ناتج JSON خالص — مناسب للتكامل مع CI/CD pipeline وأنظمة المراقبة.```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" } } }
### ضمان السلامة — للقراءة فقط
البرنامج النصي **لا ينفذ أي عملية كتابة** على عنقود 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
/opt/scripts/CVE-2026-8053-MongoDB-Fixed.sh -q exit $? # 0=OK, 1=CRITICAL, 2=WARNING
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
---
## الأثر العملي
| الجانب | التقييم |
|-----------|----------|
| **توافر الاستغلال** | لا يوجد PoC علني (وقت النشر) |
| **صعوبة الاستغلال** | متوسطة — تتطلب فهمًا عميقًا للتفاصيل الداخلية لـ FlatBSON |
| **نطاق التأثير** | جميع عمليات نشر MongoDB Server التي تشمل مجموعات السلاسل الزمنية |
| **الفئات عالية الخطورة** | الأنظمة التي تسمح لعدة مستخدمين بصلاحيات الكتابة، ومثيلات MongoDB المكشوفة على الإنترنت |
---
## الجدول الزمني
| التاريخ | الحدث |
|------|---------|
| 06/05/2026 | تم حجز CVE |
| 12/05/2026 | نشرت MongoDB استشارة أمنية وأصدرت التصحيح |
| 12/05/2026 | تم نشر استشارة GitHub الأمنية (GHSA-pr63-cc36-q84h) |
| 13/05/2026 | تحديثات على NVD وTenable وSnyk وDebian Security Tracker |
---
## المراجع
- [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 الأمنية — GHSA-pr63-cc36-q84h](https://github.com/advisories/ghsa-pr63-cc36-q84h)
- [منتدى MongoDB المجتمعي — تصحيح مهم مايو 2026](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 Security Tracker — CVE-2026-8053](https://security-tracker.debian.org/tracker/CVE-2026-8053)
- [Cyber Security News — ثغرة RCE حرجة في MongoDB](https://cybersecuritynews.com/mongodb-rce-vulnerability/)
---