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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
copyfail-guard — اكتشاف وتخفيف CVE-2026-31431 (فشل النسخ) على أنظمة لينكس. | Kitploit
أدوات/GitHubGitHub/ctzisme/copyfail-guard
أدوات دفاعيةماسحات الثغرات الأمنيةتدقيق التكوينالاستجابة للحوادث
GitHubctzisme/copyfail-guard

copyfail-guard

اكتشاف وتخفيف CVE-2026-31431 (فشل النسخ) على أنظمة لينكس.

عرض المستودع
25منذ 4 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

copyfail-guard

PyPI Python License pylint

أداة CLI بلغة Python بدون أي تبعيات خارجية تتحقق مما إذا كان مضيف Linux يبدو معرّضًا لـ CVE-2026-31431 ("Copy Fail") دون تشغيل أي استغلال. يمكنها أيضًا تطبيق تخفيف مؤقت متحفظ عندما يكون المكوّن المتأثر قابلًا للتحميل كوحدة نواة. تدعم Debian/Ubuntu وRHEL/Rocky/AlmaLinux وFedora وSUSE.

root@kitploit:~
pip install copyfail-guard
copyfail-guard

الخلفية

CVE-2026-31431 هو خطأ منطقي في واجهة النواة algif_aead (مقبس AF_ALG AEAD) يسمح لمستخدم محلي غير مميز بإجراء كتابة محكومة من 4 بايت في ذاكرة التخزين المؤقت للصفحات لأي ملف قابل للقراءة، مما يؤدي إلى تصعيد الامتيازات إلى الجذر. درجة CVSS 7.8، موجودة منذ النواة 4.14، وتم إصلاحها في الإصدارات المستقرة بدءًا من أبريل 2026. يوجد استغلال عام والمشكلة مدرجة في CISA KEV.

لماذا لا نقوم فقط بتشغيل الاستغلال؟

بعض فحوصات الثغرات تعتمد على "تشغيل الاستغلال ومعرفة ما إذا كان يعمل". هذا ليس أمرًا جيدًا للقيام به على المضيفات الإنتاجية. يتبع copyfail-guard نهجًا غير استغلالي. لا يحاول تشغيل الخطأ، أو تعديل ملفات setuid، أو إثبات قابلية الاستغلال. بدلاً من ذلك، يفحص حالة المضيف (إصدار النواة، حالة تحميل الوحدة، إعدادات modprobe) ويبلغ ما إذا كان الجهاز يبدو معرّضًا.

ما الذي تفعله هذه الأداة

fix بسيط عمدًا — فهو لا يستدعي مدير الحزم الخاص بك. الإصلاح الدائم يتطلب ترقية النواة عبر آلية التحديث العادية لتوزيعتك.

التثبيت

root@kitploit:~
pip install copyfail-guard

أو شغّله مباشرة من نسخة مستنسخة دون تثبيت:

root@kitploit:~
PYTHONPATH=src python3 -m copyfail_guard detect

الاستخدام

root@kitploit:~
copyfail-guard [--json] [--dry-run] [--quiet] [detect | fix | reset]

detect (الافتراضي)

root@kitploit:~
$ copyfail-guard
[copyfail-guard] CVE-2026-31431 (Copy Fail) — VULNERABLE
  Distribution: Ubuntu 24.04.1 LTS  (debian family)
  Kernel:       6.8.0-50-generic  (branch 6.12, fixed at 6.12.85)
  Module:       algif_aead — loaded as .ko
  Mitigation:   none

Recommended actions:
  1. Apply mitigation now:
       sudo copyfail-guard fix
  2. Update the kernel for a permanent fix:
       Update the kernel on this system to 6.12.85 or later (whatever your
       distribution ships once it has integrated the CVE-2026-31431 fix), then reboot.

fix

دائمًا قم بمعاينة النتيجة باستخدام --dry-run قبل التطبيق:

root@kitploit:~
$ sudo copyfail-guard --dry-run fix
[copyfail-guard] fix (dry-run) — OK
  [ ok ] Pre-flight checks (Linux, host, root)
  [skip] Would write modprobe blacklist  [/etc/modprobe.d/cve-2026-31431-copyfail-guard.conf]
  [skip] Would attempt to unload algif_aead (not currently loaded)  [algif_aead]
  [skip] Would append audit record  [/var/log/copyfail-guard.log]

$ sudo copyfail-guard fix
[copyfail-guard] fix — OK
  [ ok ] Pre-flight checks (Linux, host, root)
  [ ok ] Wrote modprobe blacklist  [/etc/modprobe.d/cve-2026-31431-copyfail-guard.conf]
  [ ok ] Unloaded algif_aead  [algif_aead]
  [ ok ] Appended audit record  [/var/log/copyfail-guard.log]

Next step for a permanent fix:
  Update the kernel to a CVE-2026-31431-patched version using your
  distribution's normal update mechanism, then reboot.

إذا كانت الوحدة قيد الاستخدام حاليًا، فقد تفشل خطوة إلغاء التحميل. في هذه الحالة يمكن تثبيت قاعدة modprobe الدائمة بنجاح، وسيقوم copyfail-guard بالإبلاغ عن فشل إلغاء التحميل كسجل إجراء بنمط تحذيري بدلاً من الادعاء بأن الوحدة تمت إزالتها.

إخراج JSON

--json يُصدر مستندًا منظمًا على stdout، مناسبًا لـ jq أو Ansible أو خطوط SOAR:

root@kitploit:~
$ copyfail-guard --json | jq .verdict
"vulnerable"

$ copyfail-guard --json | jq '{verdict, kernel: .kernel.patched_threshold}'
{
  "verdict": "vulnerable",
  "kernel": "6.12.85"
}

رموز الخروج

الأحكام

إزالة التخفيف

بعد الترقية إلى نواة مصححة، استخدم الأمر الفرعي reset لإزالة قاعدة modprobe المثبتة بواسطة fix:

root@kitploit:~
$ sudo copyfail-guard --dry-run reset
[copyfail-guard] reset (dry-run) — OK
  [skip] Would remove /etc/modprobe.d/cve-2026-31431-copyfail-guard.conf

$ sudo copyfail-guard reset
[copyfail-guard] reset — OK
  [ ok ] Removed /etc/modprobe.d/cve-2026-31431-copyfail-guard.conf

Reboot to allow algif_aead to load again if needed.

reset عديم الحالة — إذا كان الملف غائبًا بالفعل فإنه يخرج بالرمز 0 مع رسالة "لا شيء للقيام به". ثم أعد التشغيل.

ملاحظات

الحاويات. يرفض fix العمل داخل حاوية لأن /proc/modules يعكس نواة المضيف لكن الحاوية لا تملك صلاحية تحميل أو إلغاء تحميل الوحدات. شغّل copyfail-guard على المضيف مباشرة.

algif_aead المدمج. بعض النوى تدمج algif_aead مباشرة في الصورة (CONFIG_CRYPTO_USER_API_AEAD=y). تخفيف modprobe ليس له أي تأثير في هذا التكوين؛ الإصلاح الوحيد هو ترقية النواة. يبلغ detect بـ unmitigable_builtin في هذه الحالة. تشغيل fix سيظل يثبّت قاعدة modprobe (التي تمنع أي نسخة قابلة للتحميل متعايشة من التحميل) لكن النسخة المدمجة غير متأثرة — ترقية النواة وإعادة التشغيل هما الحل الحقيقي الوحيد.

blacklist مقابل install … /bin/false. كلا التوجيهين يمنعان التحميل التلقائي العادي، لكن install algif_aead /bin/false أقوى لأنه يمنع أيضًا استدعاءات modprobe algif_aead الصريحة العادية. يمكن لمسؤول بصلاحيات كافية تجاوز سياسة modprobe، على سبيل المثال باستخدام أدوات تحميل وحدات منخفضة المستوى أو أعلام modprobe خاصة. يثبّت copyfail-guard دائمًا الصيغة الأقوى. إذا كان نظامك يحتوي بالفعل على توجيه blacklist بسيط، تبلغ الأداة بـ mitigated لكنها تصدر ملاحظة توصي بالترقية.

SELinux/AppArmor. الكتابة إلى /etc/modprobe.d/ على RHEL ترث عادةً system_u:object_r:modules_conf_t:s0 من الدليل الأصلي، لذا لا حاجة عادةً لإعادة وضع العلامات يدويًا للملف الذي يكتبه copyfail-guard.

initramfs. algif_aead غير مضمن عادةً في صورة الإقلاع على التوزيعات الرئيسية، لذا لا يقوم copyfail-guard بتشغيل update-initramfs -u أو dracut -f بعد تثبيت قاعدة modprobe. إذا كانت توزيعتك أو بنيتك المحلية تتضمن algif_aead في initramfs، اتبع إرشادات النواة/الوحدة الخاصة بتوزيعتك.

الترخيص

Apache 2.0 — انظر LICENSE.

تنزيل الأداة
الأمر الفرعيالإجراء
detectيجمع خمس إشارات (إصدار النواة، /proc/modules، modules.builtin، modules.dep، إعدادات modprobe) في واحد من ستة أحكام
fixيكتب بشكل ذري قاعدة modprobe install algif_aead /bin/false ويحاول إلغاء تحميل algif_aead
resetيزيل قاعدة modprobe المثبتة بواسطة fix (شغّله بعد الترقية إلى نواة مصححة)
الرمزالمعنى
0آمن — الحكم هو patched أو mitigated أو not_applicable؛ أو نجحت خطوة الإصلاح الدائم
1معرّض — الحكم هو vulnerable أو unmitigable_builtin
2خطأ — تعذر تحديد الحالة، أو رفض شرط مسبق، أو فشلت خطوة الإصلاح الدائم
الحكمالوصف
patchedالنواة قيد التشغيل عند الإصدار المصحح أو أحدث
mitigatedالنواة معرّضة لكن algif_aead محظور بواسطة إعدادات modprobe
not_applicableالنواة معرّضة لكن algif_aead غير موجود على هذا النظام
vulnerableالنواة معرّضة، الوحدة قابلة للتحميل، لا يوجد تخفيف مطبق
unmitigable_builtinalgif_aead مدمج في صورة النواة — تخفيف modprobe ليس له أي تأثير؛ ترقية النواة مطلوبة
unknownتعذر تحليل إصدار النواة أو أنه خارج النطاق المُقيَّم