Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE_2026_31694 — ماسح ضوئي سلبي لثغرات المضيفات بنظام لينكس لـ CVE-2026-31694: يفحص النواة قيد التشغيل، وإعدادات FUSE، والبيانات الوصفية للحزم، وأدلة التصحيح، ثم يولّد إرشادات تخفيف مخصصة. | Kitploit
أدوات/GitHubGitHub/zenzue/cve_2026_31694
أدوات دفاعيةماسحات الثغرات الأمنيةتحليل الثغرات الأمنيةتدقيق التكوين
GitHubzenzue/cve_2026_31694

CVE_2026_31694

ماسح ضوئي سلبي لثغرات المضيفات بنظام لينكس لـ CVE-2026-31694: يفحص النواة قيد التشغيل، وإعدادات FUSE، والبيانات الوصفية للحزم، وأدلة التصحيح، ثم يولّد إرشادات تخفيف مخصصة.

عرض المستودع
3منذ شهر واحدلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

CVE-2026-31694 الماسح السلبي

أداة تقييم مضيف لينكس سلبية لـ CVE-2026-31694، وهي كتابة خارج الحدود في ذاكرة التخزين المؤقت لـ readdir الخاصة بـ FUSE في نواة لينكس.

يقوم الماسح بتقييم النواة قيد التشغيل، والتعرض لـ FUSE، وبيانات الحزم المحلية، وأدلة مصدر النواة، وبيئة التنفيذ، وعائلة نظام التشغيل. عندما يحتمل تأثر المضيف، فإنه يُنتج دليل تخفيف مخصص للتوزيعة المكتشفة.

المؤلف: Aung Myat Thu [w01f]


فهرس المحتويات

  • نظرة عامة
  • ملخص الثغرة
  • نموذج الأمان
  • الميزات
  • المتطلبات
  • التثبيت
  • الاستخدام
  • خيارات سطر الأوامر
  • سير عمل التقييم
  • النتائج
  • رموز الخروج
  • مصادر الكشف
  • دعم التوزيعات
  • توليد التخفيف
  • سلوك الحاويات وWSL
  • صيغ التقارير
  • الأتمتة والتكامل
  • الإرشادات التشغيلية
  • القيود
  • استكشاف الأخطاء وإصلاحها
  • المراجع

نظرة عامة

cve_2026_31694_scanner.py هي أداة تقييم ثغرات محلية وغير استغلالية.

إنها لا تؤكد وجود الثغرة عن طريق تشغيل مسار كود FUSE المتأثر. بدلاً من ذلك، تجمع بين عدة مؤشرات سلبية:

  • إصدار النواة قيد التشغيل؛
  • خطوط الأساس للإصدارات المُصححة من المنبع؛
  • حجم صفحة الذاكرة الحالي؛
  • إعداد النواة CONFIG_FUSE_FS؛
  • أنواع أنظمة ملفات FUSE المسجلة؛
  • وجود /dev/fuse ووصول المستخدم الحالي إليه؛
  • توفر مساعد تركيب FUSE؛
  • أنظمة التركيب النشطة لـ FUSE؛
  • فحص مصدر النواة المثبت؛
  • ملكية حزمة النواة؛
  • أدلة سجل تغييرات الحزم المحلية؛
  • بيانات تعريف تحديث الحزم المخزنة مؤقتًا؛
  • مقارنة بين النواة المثبتة والنواة قيد التشغيل؛
  • كشف التوزيعة ومدير الحزم؛
  • كشف الحاويات والآلات الافتراضية وWSL.

النتيجة هي تقييم للتعرض، وليست إثباتًا قائمًا على الاستغلال.


ملخص الثغرة

CVE-2026-31694 تؤثر على ذاكرة التخزين المؤقت لـ readdir الخاصة بـ FUSE في نواة لينكس.

يقوم المنطق المعيب بحساب الحجم المُسلسل لإدخال دليل من طول اسم يتحكم فيه الخادم، ثم ينسخ السجل إلى صفحة واحدة من صفحات ذاكرة التخزين المؤقت. يمكن لإدخال دليل بطول اسم 4095 أن ينتج حجمًا مُسلسلًا يبلغ 4120 بايتًا.

على نظام يستخدم صفحات بحجم 4096 بايت، يتجاوز هذا السجل الصفحة الواحدة بمقدار 24 بايتًا.

يرفض التصحيح من المنبع سجلات الدليل التي لا يمكن احتواؤها داخل صفحة واحدة قبل حدوث نسخة ذاكرة التخزين المؤقت.

المكوّن المتأثر```text

fs/fuse/readdir.c fuse_add_dirent_to_cache()

root@kitploit:~
### بيانات خط الأساس للماسح الضوئي

يحتوي الماسح الضوئي على خطوط الأساس المستقرة الثابتة التالية من المنبع:

| سلسلة النواة | خط الأساس المثبّت |
|---|---:|
| 5.10 | 5.10.258 |
| 5.15 | 5.15.209 |
| 6.1 | 6.1.175 |
| 6.6 | 6.6.136 |
| 6.12 | 6.12.84 |
| 6.18 | 6.18.25 |
| 7.0 | 7.0.2 |
| Mainline | 7.1 أو أحدث |

تُستخدم هذه الإصدارات كمدخل تقييم واحد. ولا تُعتبر المصدر الوحيد للحقيقة لأن موزّعي التوزيعات قد ينقلون التصحيح مع الإبقاء على رقم إصدار أقدم من المنبع.

---

## نموذج الأمان

صُمم الماسح الضوئي لتجنب استدعاء العملية المعرضة للخطر.

### لا يقوم الماسح الضوئي بـ:

- تثبيت نظام ملفات FUSE؛
- فتح أو التواصل مع `/dev/fuse`؛
- تشغيل خادم FUSE؛
- إرسال سجلات أدلة مصمّمة؛
- تخصيص ذاكرة لاختبار توزيع الصفحات؛
- تهيئة مخصِّصات النواة؛
- تعديل `/etc/passwd`؛
- تغيير إعدادات النواة؛
- تحميل أو إلغاء تحميل وحدات النواة؛
- تعديل صلاحيات `/dev/fuse`؛
- تثبيت الحزم أو إزالتها؛
- إعادة تشغيل النظام؛
- محاولة تصعيد الامتيازات.

### قد يقوم الماسح الضوئي بـ:

- قراءة الملفات تحت `/proc` و`/boot` و`/lib/modules` و`/usr/lib/modules` و`/usr/src` وأدلة بيانات الحزم الوصفية؛
- تنفيذ استعلامات حزم محدودة للقراءة فقط؛
- فحص عمليات التثبيت النشطة وتسجيل أنظمة الملفات؛
- كتابة تقرير فقط عند توفير `--output` صراحةً؛
- طباعة أوامر التخفيف لمراجعة المسؤول.

أوامر التخفيف هي مخرجات توثيقية. ولا يتم تنفيذها أبدًا تلقائيًا.

---

## الميزات

### تحديد المضيف والنواة

- يقرأ `platform.release()` ويحلل إصدار النواة بنمط المنبع.
- يقرأ `/etc/os-release` أو `/usr/lib/os-release`.
- يكتشف بنية وحدة المعالجة المركزية وحجم صفحة الذاكرة.
- يحدد ما إذا كانت النواة المفحوصة تابعة لنظام التشغيل الحالي.

### تقييم التعرض لـ FUSE

- يقرأ `CONFIG_FUSE_FS` من مصادر إعدادات النواة المتاحة.
- يكتشف دعم FUSE المدمج وإعدادات الوحدات القابلة للتحميل.
- يقرأ `/proc/filesystems`.
- يتحقق من بيانات `/dev/fuse` الوصفية وصلاحية القراءة/الكتابة للمستخدم الحالي.
- يحدد موقع `fusermount3` أو `fusermount`.
- يحلل عمليات تثبيت FUSE النشطة من `/proc/self/mountinfo`.

### أدلة التصحيح

- يقارن الإصدار الجاري مع خطوط الأساس المثبتة من المنبع.
- يبحث في شيفرة النواة المثبتة عن حارس السجل المفرط الحجم.
- يفحص سجلات التغييرات المحلية لحزم RPM أو Debian بحثًا عن:
  - `CVE-2026-31694`;
  - عنوان التصحيح من المنبع.

### حالة الحزمة وإعادة التشغيل

- يحاول تحديد الحزمة المالكة للنواة الجارية.
- يستعلم عن بيانات مدير الحزم المحلية دون تحديث المستودعات.
- يكتشف نواة مثبتة أحدث عندما تكون بيئة المضيف موثوقة.
- يتحقق من `/var/run/reboot-required` حيثما ينطبق ذلك.

### الوعي بالبيئة

- يكتشف الحاويات المتوافقة مع Docker.
- يكتشف الحاويات المتوافقة مع Podman.
- يكتشف مجموعات cgroups المتعلقة بالحاويات.
- يكتشف WSL.
- يكتشف الأجهزة الافتراضية باستخدام `systemd-detect-virt` عند توفره.

### إعداد التقارير

- مخرجات نصية قابلة للقراءة البشرية.
- مخرجات JSON قابلة للقراءة آليًا.
- مخرجات تقرير Markdown.
- مخرجات التخفيف فقط.
- إخراج ملف اختياري.
- رموز خروج ذات معنى للعملية.

---

## المتطلبات

### مطلوب

- لينكس لتقييم النواة.
- بايثون 3.9 أو أحدث.
- وصول للقراءة إلى بيانات النظام الوصفية العادية.

يستخدم الماسح الضوئي مكتبة بايثون القياسية فقط.

### أوامر اختيارية

يتم جمع أدلة إضافية عند توفر الأدوات التالية:

| الأداة | الغرض |
|---|---|
| `dpkg-query` | اكتشاف ملكية حزمة النواة وسجل التغييرات في Debian/Ubuntu |
| `rpm` | فحص ملكية الحزم وسجل التغييرات في Fedora/RHEL/SUSE |
| `pacman` | بيانات حزمة النواة والتحديثات لعائلة Arch |
| `apt` | استعلام التحديثات المخزنة لعائلة Debian |
| `dnf` أو `dnf5` | استعلام التحديثات المخزنة في Fedora/RHEL |
| `zypper` | استعلام تصحيحات CVE المخزنة في SUSE |
| `apk` | استعلام حزم/تحديثات Alpine |
| `systemd-detect-virt` | اكتشاف الحاويات والأجهزة الافتراضية |

ليست هناك حاجة لامتيازات الجذر لإجراء الفحص العادي.

قد تكون بعض الأدلة غير متاحة لحساب غير مميز بسبب صلاحيات الملفات الخاصة بالنظام.

---

## التثبيت

ضع الماسح الضوئي في دليل عمل:```bash
chmod +x cve_2026_31694_scanner.py

قم بتشغيله مباشرة:```bash ./cve_2026_31694_scanner.py

root@kitploit:~
أو استدعِه باستخدام Python:```bash
python3 cve_2026_31694_scanner.py

لا يتطلب تثبيت حزمة بايثون.


الاستخدام

التقييم القياسي```bash

python3 cve_2026_31694_scanner.py

root@kitploit:~
### مخرجات JSON```bash
python3 cve_2026_31694_scanner.py --format json

الاسم المستعار للتوافق أدناه يُنتج نفس التنسيق:```bash python3 cve_2026_31694_scanner.py --json

root@kitploit:~
### تقرير Markdown```bash
python3 cve_2026_31694_scanner.py --format markdown

حفظ تقرير```bash

python3 cve_2026_31694_scanner.py
--format markdown
--output cve-2026-31694-report.md

root@kitploit:~
### طباعة إرشادات المعالجة فقط```bash
python3 cve_2026_31694_scanner.py --mitigation-only

تخطي استعلامات تحديث الحزمة```bash

python3 cve_2026_31694_scanner.py --no-package-query

root@kitploit:~
### أعد النجاح دائمًا بعد الإبلاغ```bash
python3 cve_2026_31694_scanner.py --no-exit-status

This option is useful when collecting reports without allowing vulnerability status to fail an orchestration job.


خيارات سطر الأوامر


سير عمل التقييم

يقوم الماسح بتقييم الأدلة بالترتيب التالي.

1. اكتشاف نظام التشغيل والبيئة

يحدد الماسح:

  • ما إذا كان نظام التشغيل هو Linux؛
  • معرّف التوزيعة وعائلتها؛
  • مدير الحزم؛
  • ما إذا كانت العملية تعمل على:
    • مضيف عادي؛
    • جهاز افتراضي؛
    • حاوية؛
    • WSL.

يغيّر اكتشاف البيئة تفسير بيانات الحزم وإعادة التشغيل.

على سبيل المثال، يمكن للحاوية رؤية نواة المضيف لكنها لا تستطيع عادةً تحديد حزمة نواة المضيف من نظام ملفات الحاوية.

2. إعداد FUSE

يبحث الماسح عن إعداد نواة قيد التشغيل في:```text /proc/config.gz /boot/config-$(uname -r) /lib/modules/$(uname -r)/build/.config /usr/lib/modules/$(uname -r)/build/.config

root@kitploit:~
يقوم بتقييم:```text
CONFIG_FUSE_FS=y
CONFIG_FUSE_FS=m
CONFIG_FUSE_FS is not set

Interpretation:

القيمةالمعنى
yFUSE مدمج في النواة. لا يمكن تعطيله عبر القائمة السوداء للوحدات النمطية.
mFUSE متاح كوحدة نمطية قابلة للتحميل.
n

3. التعرض في وقت التشغيل

يفحص الماسح الضوئي:```text /proc/filesystems /dev/fuse PATH for fusermount3 or fusermount /proc/self/mountinfo

root@kitploit:~
غياب `/dev/fuse` أو `fusermount3` يقلل من قابلية الاستخدام الفورية من البيئة الحالية، لكنه لا يُثبت أن النواة مُصحَّحة.

### 4. هندسة حجم الصفحة

السجل المفرط الحجم الموثّق هو `4120` بايت.

عندما يكون حجم صفحة المضيف على الأقل `4120` بايت، فإن السجل الموثّق لا يعبر حدود الصفحة. قد يبلغ الماسح أن النظام غير معرّض لهندسة الصفحة الموثّقة.

ينطبق هذا الاستنتاج فقط على السجل الموثّق وسلوك التنفيذ الذي تم تقييمه. وهو ليس بيانًا عامًا بأن جميع مشكلات سلامة الذاكرة في FUSE مستحيلة على الأنظمة ذات الصفحات الأكبر.

### 5. فحص المصدر المثبَّت

عندما يتوفر المصدر المثبَّت، يبحث الماسح عن:```text
fs/fuse/readdir.c

يبحث عن الدالة المتأثرة وما يعادل الحماية الذي يرفض reclen > PAGE_SIZE.

الأدلة المباشرة من المصدر تمنح ثقة أعلى من مقارنة الإصدارات.

يجب أن يطابق المصدر المُفحَص نواة التشغيل الحالية حتى تكون النتيجة موثوقة. قد تمثل أشجار المصادر الخاصة بالتوزيعات الموجودة تحت /usr/src نواةً مثبّتة مختلفة.

6. أدلة حزمة النواة

يحاول الماسح الضوئي ربط صورة النواة قيد التشغيل بالحزمة المالكة لها باستخدام قاعدة بيانات الحزم الخاصة بالتوزيعة المكتشفة.

تشمل الآليات المحتملة:```text dpkg-query -S rpm -qf pacman -Qo apk info -W

root@kitploit:~
عندما يتم تحديد حزمة، يمكن فحص بيانات سجل التغييرات المحلي بحثًا عن معرف CVE أو عنوان التصحيح.

عدم وجود تطابق في سجل التغييرات ليس دليلاً على وجود ثغرة. لا يدرج المورّدون دائمًا مراجع CVE فردية في سجلات التغييرات المثبتة محليًا.

### 7. مقارنة إصدار المنبع

تتم مقارنة إصدار النواة المُحلَّل مع جدول خط الأساس الثابت للماسح الضوئي.

يُنتج مقارنة الإصدارات نتيجة استدلالية للأسباب التالية:

- نوى المورّدين قد تحتوي على backports؛
- مراجعات إصدار حزم النواة خاصة بالتوزيعة؛
- نوى السحابة، والوقت الفعلي، والمحصّنة، وتمكين الأجهزة قد يكون لها جداول زمنية منفصلة للتصحيحات؛
- يمكن أن تمثل سلسلة الإصدار فرعًا يحتفظ به المورّد بدلاً من إصدار منبع غير معدل.

### 8. بيانات تعريف تحديث الحزم

حيثما يكون مدعومًا، يقوم الماسح الضوئي بتنفيذ استعلامات للقراءة فقط مقابل البيانات الوصفية المحلية الموجودة.

لا يقوم بتحديث المستودعات.

أمثلة:```text
apt list --upgradable
pacman -Qu
dnf --cacheonly --quiet check-upgrade
zypper --no-refresh list-patches --all --cve=CVE-2026-31694
apk version -l <

لا تكون نتيجة عدم توفر تحديث حديثة إلا بقدر حداثة البيانات الوصفية للمستودع المخزنة مؤقتًا.

9. حالة إعادة التشغيل

على مضيف عادي أو جهاز افتراضي، يقارن الماسح الضوئي بين النواة قيد التشغيل والنوى المثبتة المكتشفة، ويتحقق من علامة إعادة التشغيل المستخدمة من قبل أنظمة عائلة Debian.

داخل حاوية أو ضيف WSL، يُعلَّم هذا الفحص على أنه مُتحكَّم به من المضيف بدلاً من مقارنة ملفات الضيف مع نواة المضيف.

10. توليد الأحكام

يكون ترتيب أسبقية الأدلة تقريبًا كما يلي:

  1. دليل مباشر على التصحيح من المصدر أو الحزمة؛
  2. تعطيل FUSE؛
  3. هندسة الصفحة الموثقة غير معرَّضة؛
  4. خط أساس مُصلَح من المنبع أو غير متأثر؛
  5. إصدار من المنبع يحتمل أن يكون متأثرًا؛
  6. أدلة غير حاسمة.

الأحكام

PATCHED

تشير الأدلة المحلية المباشرة إلى أن التصحيح موجود.

أمثلة:

  • حارس مصدري مطابق في مصدر النواة المعني؛
  • البيانات الوصفية المحلية لحزمة النواة تشير إلى CVE أو التصحيح.

عادةً ما تكون الثقة عالية، ولكن لا يزال يتعين التحقق من تطابق المصدر مع النواة قيد التشغيل.

NOT_EXPOSED

تهيئة النواة قيد التشغيل المكتشفة لديها FUSE معطَّل.

هذه نتيجة تعرُّض، وليست دليلاً على أن مصدر النواة نفسه يحتوي على التصحيح.

NOT_EXPOSED_BY_DOCUMENTED_PAGE_GEOMETRY

حجم صفحة الذاكرة كبير بما يكفي لاحتواء السجل الموثق البالغ 4120 بايت دون تجاوز حدود الصفحة.

هذا الحكم يقتصر على هندسة الثغرة الموثقة.

UPSTREAM_BASELINE_SAFE

الإصدار قيد التشغيل المُحلَّل يطابق خط أساس مُصلَح معروف من المنبع أو يسبق التنفيذ المتأثر.

يظل التحقق من حزمة البائع هو الأفضل.

POTENTIALLY_VULNERABLE

النواة المُحلَّلة ضمن نطاق متأثر من المنبع، ولم يُعثر على أي دليل محلي مباشر على التصحيح.

تتطلب هذه النتيجة مراجعة نشرة البائع الأمنية لنظام التشغيل قبل إعلان أن النواة المثبتة معرَّضة للخطر.

INCONCLUSIVE

لم يتمكن الماسح الضوئي من جمع أدلة كافية.

الأسباب الشائعة:

  • تهيئة نواة غير متاحة؛
  • سلسلة إصدار غير معروفة؛
  • يتعذَّر الوصول إلى المصدر أو البيانات الوصفية للحزمة؛
  • توزيعة غير مدعومة؛
  • التنفيذ داخل حاوية؛
  • نواة مُدارة من المضيف؛
  • حالة backport من البائع غير متاحة محليًا.

NOT_APPLICABLE

نظام التشغيل الحالي ليس Linux.


رموز الخروج

الرمزالمعنى
0دليل على التصحيح، أو خط أساس آمن من المنبع، أو غياب التعرُّض الموثق

مثال:```bash python3 cve_2026_31694_scanner.py status=$?

case "$status" in 0) echo "No actionable exposure detected by the scanner" ;; 1) echo "Potential exposure detected" ;; 2) echo "Assessment inconclusive" ;; 3) echo "Scanner execution failed" ;; esac

root@kitploit:~
عند تحديد `--no-exit-status`، يُرجع الماسح الضوئي `0` بعد إنشاء التقرير.

---

## مصادر الكشف

يستخدم الماسح الضوئي المصادر المحلية التالية عند توفرها:

| المصدر | المعلومات |
|---|---|
| `/etc/os-release` | هوية التوزيعة |
| `/usr/lib/os-release` | هوية التوزيعة الاحتياطية |
| `/proc/version` | مؤشرات النواة وWSL |
| `/proc/config.gz` | إعدادات النواة قيد التشغيل |
| `/boot/config-*` | إعدادات النواة |
| `/lib/modules/*/build/.config` | إعدادات بناء النواة |
| `/proc/filesystems` | أنظمة الملفات المسجلة |
| `/proc/self/mountinfo` | وحدات تحميل FUSE النشطة |
| `/proc/1/cgroup` | مؤشرات الحاويات |
| `/dev/fuse` | وجود الجهاز وأذوناته |
| `/usr/src/*/fs/fuse/readdir.c` | دليل تصحيح اختياري على مستوى المصدر |
| `/lib/modules` | جرد النواة المثبتة |
| `/usr/lib/modules` | جرد النواة المثبتة |
| `/boot/vmlinuz-*` | جرد النواة المثبتة |
| `/var/run/reboot-required` | مؤشر إعادة التشغيل لعائلة دبيان |
| قاعدة بيانات الحزم | ملكية حزم النواة |
| سجلات تغييرات الحزم | دليل اختياري للترقية الخلفية المحلية |
| ذاكرة تخزين الحزم المؤقتة | دليل اختياري لتوفر التحديث |

---

## دعم التوزيعات

### كشف عائلة التوزيعة

| العائلة | التوزيعات المعترف بها |
|---|---|
| Ubuntu | Ubuntu, Linux Mint, Pop!_OS, elementary OS, Zorin OS |
| Debian | Debian, Kali Linux, Raspbian, Parrot OS |
| Arch | Arch Linux, Manjaro, Garuda Linux, EndeavourOS, CachyOS |
| Fedora | Fedora Linux |
| RHEL | RHEL, CentOS, Rocky Linux, AlmaLinux, Oracle Linux, Amazon Linux |
| SUSE | openSUSE Tumbleweed, openSUSE Leap, SLES, SLED |
| Alpine | Alpine Linux |
| Gentoo | Gentoo Linux |
| Void | Void Linux |
| NixOS | NixOS |
| غير معروف | إرشادات لينكس عامة |

### دعم الاستعلام عن التحديث المحلي

| العائلة | استعلام التحديث للقراءة فقط |
|---|---|
| Debian/Ubuntu | `apt list --upgradable` |
| Arch | `pacman -Qu` |
| Fedora/RHEL | `dnf check-upgrade` مخزّن مؤقتًا |
| SUSE | قائمة تصحيحات CVE المخزنة مؤقتًا باستخدام `zypper` |
| Alpine | `apk version -l <` |
| Gentoo | غير منفّذ |
| Void | غير منفّذ |
| NixOS | غير منفّذ |
| غير معروف | غير منفّذ |

عدم وجود تحديث مرئي محليًا لا يعني عدم توفر حزمة مصححة. قد تكون بيانات المستودع قديمة أو قد لا تكون التوزيعة قد نشرت حزمة بعد.

---

## توليد التخفيف

يتم تحديد إرشادات التخفيف وفقًا لما يلي:

- عائلة التوزيعة؛
- مدير الحزم؛
- حالة الحاوية أو WSL؛
- إعداد FUSE؛
- توفر `/dev/fuse`؛
- وحدات تحميل FUSE النشطة؛
- حالة إعادة التشغيل؛
- الحكم النهائي.

يقوم الماسح بطباعة الأوامر ولكنه لا ينفذها أبدًا.

### عائلة دبيان وأوبونتو

التسلسل النموذجي المُنشأ:```bash
sudo apt update
sudo apt full-upgrade
sudo reboot

راجع معاملة الحزمة المقترحة قبل الموافقة عليها.

بعد إعادة التشغيل:```bash uname -r python3 cve_2026_31694_scanner.py

root@kitploit:~
### عائلة Arch و Manjaro

التسلسل الناتج النموذجي:```bash
sudo pacman -Syu
sudo reboot

أنظمة عائلة آرتش تتطلب ترقية كاملة للنظام. لا تقم بتحديث قواعد بيانات الحزم باستخدام pacman -Sy ثم تثبيت حزم محددة دون إكمال الترقية.

عائلة فيدورا و RHEL

التسلسل النموذجي المُولَّد:```bash sudo dnf upgrade --refresh sudo systemctl reboot

root@kitploit:~
الأنظمة التي تستخدم `yum` قد تتلقى الأمر `yum` المقابل.

### عائلة SUSE

التسلسل النموذجي المُولَّد:```bash
sudo zypper refresh
sudo zypper patch --cve=CVE-2026-31694
sudo zypper patch --category security
sudo systemctl reboot

قد لا يتوفر التصحيح الخاص بـ CVE كمعاملة منفصلة في كل منتج من منتجات SUSE أو حالة مستودع.

Alpine Linux

التسلسل الناتج النموذجي:```bash doas apk update doas apk upgrade doas reboot

root@kitploit:~
تعتمد بادئة الامتياز على ما إذا كان الماسح الضوئي يجد `sudo` أو `doas` أو جلسة تعمل بصلاحيات الجذر بالفعل.

### Gentoo Linux

التسلسل النموذجي المُنشأ:```bash
sudo emaint sync -a
sudo emerge --ask --update --deep --newuse @world

يعتمد تثبيت النواة وتفعيلها على سير عمل نواة Gentoo المكوَّن على المضيف.

Void Linux

التسلسل الناتج النموذجي:```bash sudo xbps-install -Suv sudo reboot

root@kitploit:~
### NixOS

التسلسل الناتج النموذجي:```bash
sudo nixos-rebuild switch --upgrade
sudo systemctl reboot

ضوابط مؤقتة

عند عدم إمكانية إكمال التصحيح فورًا، قد يقترح الماسح ضوابط مؤقتة.

تشمل التوصيات المحتملة:

  • إلغاء تحميل وحدة FUSE عندما لا تكون هناك تركيبات FUSE نشطة؛
  • حظر وحدة FUSE القابلة للتحميل؛
  • تقييد /dev/fuse مؤقتًا؛
  • إزالة /dev/fuse من الحاويات غير الموثوقة؛
  • إزالة CAP_SYS_ADMIN؛
  • تجنّب الحاويات ذات الامتياز --privileged.

يمكن أن تعطّل هذه الضوابط أعباء العمل المشروعة، بما في ذلك:

  • SSHFS؛
  • AppImage؛
  • تركيبات rclone؛
  • بوابات سطح المكتب؛
  • أدوات الحاويات غير الجذرية؛
  • أنظمة الملفات في مساحة المستخدم.

يجب ألا تحل القيود المؤقتة محل تثبيت نواة مُصححة من البائع.


سلوك الحاويات وWSL

الحاويات

عادةً ما تشارك الحاويات نواة المضيف.

قد يكتشف الماسح الذي يتم تنفيذه داخل حاوية:

  • إصدار نواة المضيف؛
  • بيانات تعريف حزم نظام ملفات الحاوية؛
  • عدم وجود حزمة نواة مطابقة للمضيف؛
  • عدم وجود /dev/fuse، حتى عندما يكون المضيف قد فعّل FUSE.

لهذا السبب، يضع الماسح الأدلة المعتمدة على المضيف كغير موثوقة ويوجّه المعالجة إلى مضيف الحاوية.

شغّل الماسح مباشرة على المضيف للحصول على تقييم موثوق للحزم وإعادة التشغيل.

تتضمن إرشادات تعزيز أمان الحاويات إزالة:```text --device /dev/fuse --cap-add SYS_ADMIN --privileged

root@kitploit:~
يجب أيضًا مراجعة تكوين Compose المكافئ:```yaml
devices:
  - /dev/fuse:/dev/fuse

cap_add:
  - SYS_ADMIN

privileged: true

WSL

يتم إدارة نواة WSL بواسطة Windows بدلاً من حزمة النواة الخاصة بتوزيعة Linux الضيف.

إرشادات نموذجية مولّدة:```powershell wsl --update wsl --shutdown

root@kitploit:~
شغّل هذه الأوامر من Windows PowerShell، وأعد تشغيل التوزيعة، ثم أعد تشغيل الماسح الضوئي.

تحديث حزم الضيف فقط باستخدام `apt` أو `dnf` أو أي مدير حزم Linux آخر لا يستبدل نواة WSL.

### الأجهزة الافتراضية

عادةً ما تمتلك الآلة الافتراضية نواة الضيف الخاصة بها. تبقى فحوصات الحزم وإعادة التشغيل الخاصة بتوزيعة معينة سارية المفعول داخل الضيف.

يجب تقييم مضيف المُشغِّل الافتراضي بشكل منفصل.

---

## تنسيقات التقارير

### نص

مخرجات النص مخصّصة للاستخدام المباشر في الطرفية.```bash
python3 cve_2026_31694_scanner.py --format text

يحتوي التقرير على:

  • ملخص المضيف؛
  • فحوصات الأدلة؛
  • تحديثات الحزم عند توفرها؛
  • الحكم ومستوى الثقة؛
  • دليل التخفيف؛
  • أوامر التحقق؛
  • تحذيرات؛
  • ملاحظات؛
  • رمز الخروج.

JSON

تحتوي مخرجات JSON على التقرير الكامل المبني على dataclass.```bash python3 cve_2026_31694_scanner.py
--format json
--output report.json

root@kitploit:~
مثال على تحديد الحقل:```bash
python3 cve_2026_31694_scanner.py --format json --no-exit-status |
  python3 -c '
import json
import sys

report = json.load(sys.stdin)
print(report["hostname"])
print(report["verdict"])
print(report["confidence"])
print(report["kernel_release"])
'

Markdown

مخرجات Markdown مناسبة للسجلات الفنية والتذاكر وتقارير التقييم.```bash python3 cve_2026_31694_scanner.py
--format markdown
--output report.md

root@kitploit:~
### تقرير التخفيف فقط```bash
python3 cve_2026_31694_scanner.py \
  --mitigation-only \
  --format markdown

مع تنسيق JSON، يعيد وضع التخفيف فقط كائن التخفيف بدلاً من تقرير المضيف الكامل.


الأتمتة والتكامل

Shell gate```bash

#!/usr/bin/env bash

set -u

report="cve-2026-31694-$(hostname)-$(date +%Y%m%d-%H%M%S).json"

python3 cve_2026_31694_scanner.py
--format json
--output "$report"

status=$?

case "$status" in 0) echo "Assessment completed without a potential-vulnerability verdict" ;; 1) echo "Potential CVE-2026-31694 exposure detected: $report" >&2 ;; 2) echo "Assessment inconclusive: $report" >&2 ;; *) echo "Scanner failure: $report" >&2 ;; esac

exit "$status"

root@kitploit:~
### جمع التقارير دون فشل المهمة```bash
python3 cve_2026_31694_scanner.py \
  --format json \
  --output /var/tmp/cve-2026-31694.json \
  --no-exit-status

مثال Cron```cron

30 3 * * * /usr/bin/python3 /opt/security/cve_2026_31694_scanner.py --format json --output /var/log/cve-2026-31694.json --no-exit-status

root@kitploit:~
هذا يستبدل نفس ملف التقرير. استخدم سكربت غلاف عندما تكون التقارير التاريخية مطلوبة.

### مثال خدمة Systemd```ini
[Unit]
Description=Passive CVE-2026-31694 assessment
After=local-fs.target

[Service]
Type=oneshot
ExecStart=/usr/bin/python3 /opt/security/cve_2026_31694_scanner.py --format json --output /var/log/cve-2026-31694.json --no-exit-status
NoNewPrivileges=yes
PrivateTmp=yes
ProtectSystem=strict
ProtectHome=yes
ReadWritePaths=/var/log

يحتاج الماسح إلى صلاحية قراءة لبيانات kernel وبيانات الحزم. قد تؤدي قيود sandbox الإضافية إلى إخفاء الأدلة وإنتاج تقرير غير حاسم.

الاستخدام على نطاق الأسطول

لتقييم الأسطول:

  1. ضع السكربت على كل مضيف Linux؛
  2. نفّذه محليًا؛
  3. اجمع مخرجات JSON؛
  4. جمّع النتائج حسب:
    • التوزيعة؛
    • إصدار kernel؛
    • النتيجة؛
    • درجة الثقة؛
    • نوع البيئة؛
  5. تحقق من المضيفين المحتمل تأثرهم وفقًا للنشرات الأمنية من المورّد؛
  6. طبّق التصحيحات وأعد التشغيل؛
  7. أعد الفحص.

لا تتعامل مع الفحص الناتج عن بناء صورة حاوية على أنه تقييمًا لـ kernel المضيف.


الإرشادات التشغيلية

الاستجابة الموصى بها لـ POTENTIALLY_VULNERABLE

  1. حدد إصدار kernel قيد التشغيل بدقة: ```bash uname -r

    root@kitploit:~
  2. حدد التوزيعة والإصدار المثبت: ```bash cat /etc/os-release

    root@kitploit:~
  3. راجع حالة CVE لدى بائع التوزيعة لحزمة النواة والنكهة المحددين.

  4. قم بتحديث البيانات الوصفية للحزم.

  5. ثبّت حزمة النواة المُصحّحة المدعومة من البائع.

  6. أعد تشغيل المضيف.

  7. تأكد من أن النواة قيد التشغيل تغيّرت: ```bash uname -r

    root@kitploit:~
  8. أعد تشغيل الماسح الضوئي.

الاستجابة الموصى بها لـ INCONCLUSIVE

اجمع الأدلة المفقودة:```bash uname -a getconf PAGE_SIZE cat /etc/os-release grep CONFIG_FUSE_FS /boot/config-"$(uname -r)" 2>/dev/null cat /proc/filesystems ls -l /dev/fuse 2>/dev/null findmnt -t fuse,fuseblk,fusectl

root@kitploit:~
ثم تحقق من حزمة النواة الدقيقة وفقًا لإشعار البائع.

### التحقق من إعادة التشغيل

تثبيت حزمة نواة مُصححة لا يغيّر النواة قيد التشغيل حاليًا.

تحقق من كلٍّ من النواة المثبتة والنواة قيد التشغيل، ثم أعد التشغيل حسب الحاجة.

أمثلة:```bash
uname -r
ls -1 /lib/modules

قد توفر أنظمة عائلة Debian أيضًا:```bash test -e /var/run/reboot-required && cat /var/run/reboot-required

root@kitploit:~
### مراجعة اعتماديات FUSE

قبل إلغاء تحميل FUSE أو حظره مؤقتًا:```bash
findmnt -t fuse,fuseblk,fusectl
lsmod | grep '^fuse'
ps aux | grep -E '[f]usermount|[s]shfs|[r]clone'

لا تقم بإلغاء تحميل الوحدة النمطية أثناء تركيب أنظمة ملفات FUSE النشطة.


القيود

لا يوجد تأكيد للاستغلال

الماسح لا يقوم عمدًا بتشغيل مسار الكود القابل للاستغلال.

النتيجة POTENTIALLY_VULNERABLE تعني أن الأدلة السلبية المتاحة متوافقة مع التعرض. وهي ليست دليلًا على أن الاستغلال سينجح.

ترقيعات البائع

نوى التوزيعات تقوم بشكل متكرر بنقل التصحيحات الأمنية.

قد تكون النسخة المنبعية ذات المظهر الأقدم مصححة بالترقيع.

نشرة البائع وإصدار الحزمة الدقيق هما المرجع المعتمد لنوى التوزيعات المدارة.

عدم تطابق شجرة المصدر

شجرة المصدر الموجودة تحت /usr/src قد لا تطابق النواة قيد التشغيل.

يجب التحقق من أدلة ترقيع المصدر مقارنة بـ:```bash uname -r

root@kitploit:~
ومصدر الحزمة أو دليل البناء المستخدم لتلك النواة بالضبط.

### بيانات وصفية قديمة للحزم

لا يقوم الماسح بتحديث المستودعات.

تعتمد فحوصات تحديث الحزم على حالة الذاكرة المؤقتة المحلية الموجودة.

استخدم أوامر التحديث والترقية المولّدة الخاصة بالتوزيعة لاتخاذ قرار حديث بشأن الحزم.

### الحاويات

ترى الحاوية نواة المضيف ولكن عادةً ما يكون لديها بيانات وصفية مختلفة للحزم.

شغّل الماسح على المضيف.

### WSL

لا تحدد حالة حزم الضيف لنظام لينكس حالة تصحيح نواة WSL.

حدّث WSL من ويندوز.

### النوى المخصصة

قد لا تحتوي النوى المخصصة، والمدمجة، ونوى الأجهزة، ونوى المورّدين، والنوى المبنية ذاتيًا على بيانات وصفية للحزم أو سلاسل إصدار يمكن التعرف عليها.

افحص الالتزام (commit) الفعلي للمصدر أو ملاحظات إصدار المورّد.

### الترقيع المباشر

لا يحدد الماسح ما إذا كان إطار عمل الترقيع المباشر قد طبق هذا التصحيح المحدد على النواة قيد التشغيل.

استخدم أدوات الحالة وبيانات النشرات الاستشارية من مورّد الترقيع المباشر.

### حالة الإقلاع الآمن ومحمّل الإقلاع

لا يتحقق الماسح من:

- أي نواة سيختارها محمّل الإقلاع تاليًا؛
- ما إذا كان الإقلاع الآمن يقبل الصورة المثبتة؛
- ما إذا كانت initramfs جديدة قد أُنشئت بشكل صحيح؛
- ما إذا كان الجهاز قد أُعيد تشغيله بنجاح إلى النواة المتوقعة.

### أنظمة الملفات الموزعة ومساحات الأسماء

يقيّم الماسح مساحة اسم العملية الحالية.

قد لا تظهر عمليات التركيب أو الوصول إلى الأجهزة المخفية بواسطة مساحات الأسماء في التقرير.

---

## استكشاف الأخطاء وإصلاحها

### `Kernel configuration could not be determined`

تحقق مما إذا كان أحد هذه الملفات موجودًا:```bash
ls -l /proc/config.gz
ls -l /boot/config-"$(uname -r)"
ls -l /lib/modules/"$(uname -r)"/build/.config

بعض التوزيعات لا تعرض التهيئة الجارية عبر /proc/config.gz.

Running kernel package could not be identified

الأسباب المحتملة:

  • العمل داخل حاوية;
  • صورة النواة غير موجودة في نظام الملفات الحالي;
  • نواة مخصصة;
  • قاعدة بيانات الحزم غير متاحة;
  • نواة مقدَّمة من النظام الأساسي;
  • صلاحيات غير كافية.

تحقّق:```bash uname -r ls -l /boot ls -l /lib/modules/"$(uname -r)"

root@kitploit:~
### استعلام تحديث الحزمة لا يُظهر أي تحديث

قم بتحديث بيانات الحزم الوصفية باستخدام دليل التخفيف المُنشأ، ثم أعد تشغيل الماسح الضوئي.

لا يقوم الماسح الضوئي السلبي بتحديث المستودعات تلقائيًا.

### `POTENTIALLY_VULNERABLE` بعد تثبيت التحديثات

تأكد من أن النواة الجديدة قيد التشغيل:```bash
uname -r

قارنه مع أدلة النواة المثبتة:```bash ls -1 /lib/modules

root@kitploit:~
قد لا يزال إعادة التشغيل مطلوبًا.

تحقق أيضًا من نشرة البائع لأن backport المُصلَح قد لا يتطابق مع خط الأساس لإصدار upstream.

### FUSE مدمج في النواة

عندما يعرض التقرير:```text
CONFIG_FUSE_FS=y

modprobe -r fuse وحظر الوحدات (module blacklisting) لا يمكنهما تعطيل FUSE.

استخدم نواة معدّلة (patched kernel) أو نواة مبنية دون دعم FUSE.

مخرجات الماسح الضوئي غير مكتملة في بيئة عزل systemd

قد يحتاج الماسح الضوئي إلى صلاحية قراءة لـ:```text /proc /boot /lib/modules /usr/lib/modules /usr/src package database directories package cache directories

root@kitploit:~
اضبط تقوية الخدمة بحيث تظل هذه المسارات قابلة للقراءة.

---

## تخطيط الملفات

تخطيط المشروع الموصى به:```text
cve-2026-31694-scanner/
├── README.md
└── cve_2026_31694_scanner.py

التخطيط الموصى به للتثبيت:```text /opt/security/cve-2026-31694/ ├── README.md └── cve_2026_31694_scanner.py

root@kitploit:~
مثال:```bash
sudo install -d -m 0755 /opt/security/cve-2026-31694

sudo install -m 0755 \
  cve_2026_31694_scanner.py \
  /opt/security/cve-2026-31694/

sudo install -m 0644 \
  README.md \
  /opt/security/cve-2026-31694/

المراجع

  • سجل CVE: https://www.cve.org/CVERecord?id=CVE-2026-31694
  • سجل NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-31694
  • مرجع التصحيح المستقر لنواة لينكس: https://git.kernel.org/stable/c/51a8de6c50bf947c8f534cd73da4c8f0a13e7bed
  • حالة أوبونتو: https://ubuntu.com/security/CVE-2026-31694
  • متتبع أمان دبيان: https://security-tracker.debian.org/tracker/CVE-2026-31694
  • قاعدة بيانات CVE في ريد هات: https://access.redhat.com/security/cve/CVE-2026-31694
  • قاعدة بيانات CVE في SUSE: https://www.suse.com/security/cve/CVE-2026-31694.html

المؤلف

Aung Myat Thu [w01f]

تنزيل الأداة
الخيارالوصف
--format textمخرجات طرفية قابلة للقراءة البشرية. هذا هو الافتراضي.
--format jsonتقرير كامل منظم بصيغة JSON.
--format markdownتقرير Markdown تقني.
--jsonاسم مستعار لـ --format json.
--output PATHكتابة التقرير إلى ملف بدلاً من المخرجات القياسية.
--mitigation-onlyإرجاع قسم التخفيف (mitigation) المُنشأ فقط.
--no-package-queryتخطّي استعلامات التحديث الخاصة بمدير الحزم المحلي.
--no-exit-statusالخروج دائمًا بالحالة 0 بعد إنشاء المخرجات.
-h, --helpعرض مساعدة الأمر.
FUSE معطّل في التكوين المكتشف.
unknownلا يتوفر مصدر تكوين قابل للقراءة.
1
قد يكون معرَّضًا للخطر
2غير حاسم
3خطأ في الماسح الضوئي أو في توليد التقرير