
Ansible playbook لكشف ومعالجة CVE-2026-31431 (Copy Fail) - ثغرة تصعيد الامتيازات المحلية في نواة لينكس
كشف فشل النسخ ومعالجته
مجموعة أدوار ومسرحيات Ansible لاكتشاف ومعالجة CVE-2026-31431 (فشل النسخ)، وهي ثغرة حرجة لتصعيد الامتيازات محليًا في وحدة algif_aead في نواة لينكس.
🔗 GitHub: https://github.com/parmstro/cfDr
الاسم cfDr هو تلاعب لفظي على "طبيب فشل النسخ" - علاجك الموثوق لـ CVE-2026-31431.
CVE-2026-31431 (CVSS 7.8) هو خلل منطقي في واجهة مأخذ AEAD في نواة لينكس (AF_ALG) تم اكتشافه في عام 2026. تسمح الثغرة لأي مستخدم محلي غير مميز بتصعيد امتيازاته إلى صلاحيات الجذر في ثوانٍ.
algif_aead (واجهة تشفير AF_ALG)إصدارات النواة: نواة لينكس >= 4.10 (صدرت عام 2017)
التوزيعات المتأثرة:
ملاحظة: أي توزيعة لينكس بنواة 4.10 أو أحدث معرضة للخطر.
هذه الثغرة خطيرة بشكل خاص للأسباب التالية:
بمجرد حصول المهاجم على أي شكل من أشكال الوصول المحلي (SSH، قشرة ويب، هروب حاوية، إلخ)، يمكنه:
أثناء انتظار تصحيحات النواة المقدمة من الموردين، تتوفر عدة استراتيجيات تخفيف. cfDr ينفذها جميعًا، مع توصيات ذكية بناءً على تكوين نظامك.
ليست جميع المعالجات متساوية. إليك ما تحتاج معرفته:
| الطريقة | هل يمكن للجذر تجاوزها؟ | التغطية | دعم Enterprise Linux |
|---|---|---|---|
| قائمة الحظر للوحدات | ✅ نعم (عبر insmod) | يمنع تحميل modprobe | جميع الإصدارات |
| سياسة SELinux | ❌ لا (طبقة LSM) | النطاقات المكوّنة فقط | جميع الإصدارات (افتراضي) |
| seccomp في systemd | ❌ لا (مرشح استدعاءات النظام) | الخدمات المكوّنة فقط | جميع الإصدارات |
| eBPF LSM | ❌ لا (طبقة LSM) | على مستوى النظام (إذا تم تكوينه) | RHEL 9+، Fedora 34+ |
التوصية الافتراضية لـ cfDr: الخيار 3 (قائمة حظر الوحدات + SELinux)
يوفر هذا طبقتين حماية مستقلتين:``` ┌─────────────────────────────────────────────────┐ │ Layer 1: Module Blacklist │ │ • Prevents modprobe algif_aead │ │ • Persists across reboots │ │ • CAN be bypassed by malicious root (insmod) │ ├─────────────────────────────────────────────────┤ │ Layer 2: SELinux Policy │ │ • Blocks AF_ALG socket() at syscall level │ │ • Works even if module is loaded │ │ • CANNOT be bypassed from userspace │ │ • Covers user_t, unconfined_t (majority cases) │ └─────────────────────────────────────────────────┘
Result: If either layer fails, the other still protects
### لماذا لا تكفي القائمة السوداء للوحدات وحدها
يمكن للمهاجم العازم الذي يمتلك صلاحيات الجذر (root) تجاوز القائمة السوداء للوحدات:```bash
# Module blacklist DOES NOT prevent:
insmod /lib/modules/$(uname -r)/kernel/crypto/algif_aead.ko.xz
ومع ذلك، هذا مقبول للأسباب التالية:
للحصول على حماية كاملة غير قابلة للتجاوز، تحتاج إلى:
القائمة السوداء للوحدات + واحد على الأقل من:
يستخدم cfDr أعلامًا بتاتية لتمكين تخفيفات متعددة:
| قيمة العلم | التخفيفات المفعّلة | حالة الاستخدام |
|---|---|---|
| 1 | القائمة السوداء للوحدات فقط | حماية دنيا، أنظمة بدون SELinux |
| 2 | SELinux فقط | بيئات SELinux فقط |
| 3 | القائمة السوداء للوحدات + SELinux | الافتراضي الموصى به |
| 5 | القائمة السوداء للوحدات + seccomp | أنظمة غير SELinux مع تقوية الخدمات |
| 7 | القائمة السوداء للوحدات + SELinux + seccomp | حماية معززة |
| 15 | جميع التخفيفات | أقصى حماية (RHEL 9+ فقط) |
حساب الأعلام: 1 (قائمة سوداء) + 2 (SELinux) + 4 (seccomp) + 8 (eBPF) = المجموع
حماية SELinux:
user_t, unconfined_t, httpd_t, postgresql_t, mysqld_tuser_t و unconfined_t الغالبية العظمى من سيناريوهات الهجومحماية systemd seccomp:
httpd, nginx, postgresql, mariadb, redis, memcachedحماية eBPF LSM:
يجري cfDr تقييمًا شاملًا عبر أبعاد متعددة:
uname -r
- يحدد ما إذا كان إصدار النواة >= 4.10 (النطاق المعرض للخطر)
- يحدد إصدار النواة والتوزيعة
#### 2. التحقق من توفر الوحدة```bash
modinfo algif_aead
algif_aead في النواةlsmod | grep algif_aead
- يحدد ما إذا كانت الوحدة محمّلة حاليًا
- **حرج**: الوحدة المحمّلة = قابلة للاستغلال بنشاط
#### 4. كشف المقبس النشط```bash
lsof -U | grep AF_ALG
قائمة حظر الوحدات (Module Blacklist):```bash grep -E "blacklist algif_aead|install algif_aead" /etc/modprobe.d/*.conf
**سياسة SELinux**:```bash
semodule -l | grep cve_2026_31431_af_alg_deny
systemd seccomp:```bash systemctl show | grep RestrictAddressFamilies
#### 6. تحديد الحالة الفئوية
يقوم cfDr بتصنيف كل مضيف إلى إحدى هذه الحالات:
| الحالة | الشرط | الإجراء المطلوب |
|--------|-----------|-----------------|
| **قابل للاستغلال - الوحدة محمّلة** | النواة >= 4.10، الوحدة موجودة ومحمّلة | **فوري** - قابل للاستغلال بنشاط |
| **قابل للاستغلال - الوحدة موجودة** | النواة >= 4.10، الوحدة موجودة وغير محمّلة | **عالي** - يمكن تحميلها واستغلالها |
| **مخفف - الوحدة مدرجة في القائمة السوداء** | تم اكتشاف القائمة السوداء | **منخفض** - راقب، طبّق طبقات إضافية |
| **محمي - دفاع متعمق** | القائمة السوداء + SELinux/seccomp/eBPF | **لا شيء** - محمي بالكامل |
| **غير قابل للاستغلال - نواة قديمة** | النواة < 4.10 | **لا شيء** - يسبق الثغرة الأمنية |
| **غير قابل للاستغلال - لا توجد وحدة** | وحدة algif_aead غير موجودة في النواة | **لا شيء** - الوحدة غير متوفرة |
### مخرجات التقييم
يتلقى كل مضيف:
1. **مخرجات وحدة التحكم**: سطر واحد مختصر للحالة
2. **ملف تفصيلي**: `/root/cve-2026-31431-assessment-<hostname>.txt`
3. **تقرير JSON**: `/tmp/cve-2026-31431-<hostname>.json`
مثال على المخرجات المختصرة:```
webserver1.example.com: VULNERABLE - Module exists and can be loaded
dbserver2.example.com: PROTECTED - Defense-in-depth (Module Blacklist + SELinux)
appserver3.example.com: NOT VULNERABLE - Module not available
تم بناء cfDr كدور Ansible حديث مع نقاط دخول متعددة لـ playbook:``` cfDr/ ├── roles/ │ └── cve_2026_31431/ # Main role │ ├── tasks/ │ │ ├── main.yml # Role orchestration │ │ ├── assessment.yml # Vulnerability detection │ │ ├── remediation_module_blacklist.yml │ │ ├── remediation_selinux.yml │ │ ├── remediation_seccomp.yml │ │ ├── remediation_ebpf.yml │ │ ├── reporting.yml # Status reporting │ │ └── inventory_update.yml # Inventory generation │ ├── templates/ # Config file templates │ ├── defaults/ # Default variables │ └── handlers/ # Service restarts, etc. ├── quickstart.yml # Simplest usage ├── sample_playbook.yml # Multiple examples └── cve_2026_31431_playbook.yml # Full-featured playbook
### تدفق التنفيذ
#### وضع التقييم (الافتراضي)```
1. Pre-flight checks
↓
2. Gather system facts
↓
3. Detect kernel version
↓
4. Check module availability
↓
5. Check current load status
↓
6. Check existing mitigations
↓
7. Determine vulnerability status
↓
8. Flag vulnerable hosts
↓
9. Generate reports
↓
10. Create summary
↓
11. [Optional] Generate inventory
apply_remediation=true)```1-8. [Same as Assessment Mode] ↓ 9. Apply Module Blacklist (if flag 1) • Unload module if loaded • Create blacklist config • Update initramfs/initrd • Verify blacklist works ↓ 10. Apply SELinux Policy (if flag 2) • Install policy packages • Compile policy module • Install policy • Verify policy active ↓ 11. Apply systemd seccomp (if flag 4) • Create drop-in files • Reload systemd • Restart services • Verify filters active ↓ 12. Apply eBPF LSM (if flag 8) • Compile eBPF program • Load into kernel • Verify program attached ↓ 13. Re-assess protection status ↓ 14. Generate reports ↓ 15. Create summary
### تفاصيل المعالجة
#### قائمة حظر الوحدات (العلم 1)
**ما الذي يفعله**:
1. يفرغ وحدة `algif_aead` إذا كانت محمّلة حالياً (`rmmod algif_aead`)
2. ينشئ `/etc/modprobe.d/blacklist-algif_aead-cve-2026-31431.conf`: ```
blacklist algif_aead
install algif_aead /bin/true
update-initramfs -udracut -fmodprobeالحماية: فورية، لا تتطلب إعادة تشغيل الاستمرارية: يبقى بعد إعادة التشغيل وتحديثات النواة
ما تقوم به:
policycoreutilspolicycoreutils-python-utilsselinux-policy-develcheckpolicysemodule -i cve_2026_31431_af_alg_deny.ppالمجالات المحمية (افتراضيًا):
user_t - عمليات المستخدم العاديةunconfined_t - العمليات غير المقيدةhttpd_t - خادم الويب Apachepostgresql_t - قاعدة بيانات PostgreSQLmysqld_t - قاعدة بيانات MySQL/MariaDBالحماية: يحجب عند طبقة LSM، لا يمكن تجاوزه الاستمرارية: السياسة تبقى بعد إعادة التشغيل
ما تقوم به:
/etc/systemd/system/<service>.service.d/90-cve-2026-31431-block-af-alg.confRestrictAddressFamilies=~AF_ALGالخدمات المحمية (افتراضيًا):
httpd, nginx - خوادم الويبpostgresql, mariadb - قواعد البياناتredis, memcached - خوادم التخزين المؤقتالحماية: يحجب إنشاء المقابس على مستوى استدعاءات النظام لكل خدمة الاستمرارية: يبقى بعد إعادة التشغيل وتحديثات الخدمات
ما تقوم به:
المتطلبات:
CONFIG_BPF_LSM=yالحماية: سياسة ديناميكية قابلة للبرمجة على مستوى النظام بأكمله الاستمرارية: يتطلب خدمة نظام لإعادة التحميل عند الإقلاع
يمكن لـ cfDr توليد ملفات قائمة جرد جاهزة للاستخدام تحتوي فقط على المضيفين المعرضين للخطر:
الملفات المولّدة:``` inventory_output/ ├── vulnerable_hosts.yml # YAML inventory ├── vulnerable_hosts.ini # INI inventory ├── group_vars_vulnerable_hosts.yml # Group variables └── host_vars/ ├── host1.yml # Per-host details └── host2.yml
**ما يتضمنه**:
- نتائج تقييم الثغرات
- علامات التخفيف الموصى بها (محسوبة لكل مضيف)
- تفاصيل النظام (إصدار النواة، حالة SELinux)
- إعدادات المعالجة الجاهزة للتطبيق
**توصيات ذكية**:
- العلامة 3 (قائمة الحظر للوحدات + SELinux) إذا كان SELinux مفعّلاً
- العلامة 1 (قائمة الحظر للوحدات فقط) إذا لم يكن SELinux متاحاً
- قابلة للتخصيص لكل مضيف عبر `host_vars` المُولّدة
---
## التأثير على تشفير النظام
### النتيجة الحرجة: تشفير RHEL القياسي غير متأثر
**مستوى الثقة**: ⭐⭐⭐⭐⭐ **عالٍ** - راجع [تقرير التحقق من IPsec/XFRM](https://github.com/parmstro/cfdr/blob/HEAD/docs/IPSEC_VALIDATION.md) للتحليل الشامل
**أخبار سارة لنشر Enterprise Linux:** استناداً إلى مصادر موثوقة بما في ذلك [CERT-EU](https://cert.europa.eu/publications/security-advisories/2026-005/) و[CloudLinux](https://blog.cloudlinux.com/cve-2026-31431-copy-fail-mitigation-and-patches) و[HPCsec](https://www.hpcsec.com/2026/04/30/advisory-cve-2026-31431-copy-fail-local-privilege-escalation-via-af-alg-algif_aead/)، فإن إجراءات cfDr التخفيفية لها تأثير ضئيل إلى معدوم على تشفير وخدمات نظام RHEL القياسية.
### ما لا يتأثر
أنظمة التشفير الحرجة التالية في RHEL **لا تستخدم AF_ALG** وهي غير متأثرة تماماً بإجراءات المعالجة لدينا:
#### خدمات النظام الأساسية
| الخدمة/المكوّن | الوظيفة | الحالة |
|------------------|----------|--------|
| **dm-crypt / LUKS** | تشفير القرص الكامل | ✅ غير متأثر |
| **IPsec / XFRM** | الشبكات الافتراضية الخاصة والتشفير | ✅ غير متأثر ([تم التحقق منه](https://github.com/parmstro/cfdr/blob/HEAD/docs/IPSEC_VALIDATION.md)) |
| **kTLS** | تنفيذ TLS في النواة | ✅ غير متأثر |
| **SSH** | اتصالات الصدفة الآمنة | ✅ غير متأثر |
#### مكتبات التشفير
| المكتبة | الاستخدام | الحالة |
|---------|-------|--------|
| **OpenSSL** (الافتراضية) | SSL/TLS والشهادات والتشفير العام | ✅ غير متأثرة |
| **GnuTLS** (الافتراضية) | تنفيذ TLS | ✅ غير متأثرة |
| **NSS** | خدمات أمان شبكة Mozilla | ✅ غير متأثرة |
| **سلسلة مفاتيح النواة** | إدارة مفاتيح النواة | ✅ غير متأثرة |
#### البنية التحتية الحرجة
- ✅ **SSL/TLS** - جميع تشفيرات خوادم الويب غير متأثرة
- ✅ **HTTPS** - حركة مرور الويب الآمنة غير متأثرة
- ✅ **تشفير البريد الإلكتروني** (S/MIME، PGP) - غير متأثر
- ✅ **عمليات الشهادات** - غير متأثرة
- ✅ **تشفير قواعد البيانات** - غير متأثر
- ✅ **تشفير النسخ الاحتياطي** - غير متأثر
### لماذا لا تستخدم الخدمات القياسية AF_ALG
كما هو موثق في [توثيق تشفير نواة Linux](https://www.kernel.org/doc/html/v4.11/crypto/userspace-if.html)، فإن **AF_ALG هي واجهة مقبس في مساحة المستخدم** لتشفير النواة تم تقديمها في Linux 2.6.38. ومع ذلك، تستخدم معظم خدمات نظام RHEL واجهة برمجة تطبيقات التشفير في النواة **مباشرة** بدلاً من المرور عبر طبقة مقبس AF_ALG.
وفقاً لـ[نشرة CERT-EU الأمنية](https://cert.europa.eu/publications/security-advisories/2026-005/):
> "إن dm-crypt / LUKS وkTLS وIPsec وSSH وإصدارات OpenSSL / GnuTLS الافتراضية لا تعتمد على AF_ALG وهي غير متأثرة بقيود AF_ALG."
تبدو البنية المعمارية على النحو التالي:```
┌─────────────────────────────────────────────┐
│ Userspace Applications │
├─────────────────────────────────────────────┤
│ Standard Crypto Libraries │
│ (OpenSSL, GnuTLS, NSS) │
│ │ │
│ └─────> In-Kernel Crypto API ──────────┐ │
│ (Direct access) │ │
├──────────────────────────────────────────┼──┤
│ AF_ALG Socket Interface (RARELY USED) │ │
│ │ │ │
│ └─────> In-Kernel Crypto API ──────────┘ │
├─────────────────────────────────────────────┤
│ Kernel Crypto Subsystem │
│ (AES, SHA, AEAD algorithms) │
└─────────────────────────────────────────────┘
Standard services bypass AF_ALG entirely
وفقًا لـ تحليل R-fx Networks:
"بالنسبة لمعظم بيئات HPC، لن يكسر هذا أي شيء – AF_ALG هو بوابة أمامية من مساحة المستخدم إلى تشفير النواة لا يستخدمها أي شيء تقريبًا."
فقط هذه التكوينات النادرة للغاية قد تتأثر:
ليس افتراضيًا على RHEL. يجب تكوين محرك afalg صراحةً:```bash
openssl engine afalg
**حالة الاستخدام:** تفريغ تسريع التشفير عبر الأجهزة
**الانتشار:** نادر للغاية في النشرات القياسية
**التأثير:** يتراجع التطبيق إلى التشفير البرمجي
#### 2. التطبيقات المخصصة التي تستخدم libkcapi
**برمجة مآخذ AF_ALG المباشرة** باستخدام مكتبات متخصصة.
**حالة الاستخدام:** أدوات أمنية متخصصة أو تطبيقات تشفير مخصصة
**الانتشار:** شبه معدوم في بيئات المؤسسات القياسية
**التأثير:** خاص بالتطبيق، يتطلب تعديل الكود
#### 3. أدوات تفريغ التشفير عبر الأجهزة
**أدوات متخصصة** تستخدم AF_ALG لتسريع الأجهزة.
**حالة الاستخدام:** الحوسبة عالية الأداء، مسرعات التشفير عبر الأجهزة
**الانتشار:** فقط في بيئات الأمان العالي أو HPC المتخصصة
**التأثير:** التراجع إلى التشفير البرمجي
### الموقف الرسمي لـ Red Hat
وفقًا لـ [Red Hat Bugzilla #2460538](https://bugzilla.redhat.com/show_bug.cgi?id=2460538):
- **CVE:** CVE-2026-31431
- **الخطورة:** عالية (CVSS 7.8)
- **الحالة:** تم الإصلاح في النواة 6.19.12+
- **الإصلاح:** يعيد تحسين العمل في المكان لعام 2017 (commit 72548b093ee3)
- **التأثير:** "لا فائدة من العمل في المكان في algif_aead لأن المصدر والوجهة يأتيان من تعيينات مختلفة"
### تقييم التأثير حسب علامة التخفيف
| العلامة | التخفيفات | التأثير على الخدمات القياسية |
|------|------------|----------------------------|
| 1 | قائمة الحظر للوحدات | ✅ تأثير صفري - AF_ALG غير مستخدم |
| 2 | سياسة SELinux | ✅ تأثير صفري - يحظر استدعاء النظام غير المستخدم |
| **3** | **قائمة الحظر + SELinux** | ✅ **تأثير صفري - موصى به** |
| 5 | قائمة الحظر + seccomp | ✅ تأثير صفري - آمن لكل خدمة |
| 7 | قائمة الحظر + SELinux + seccomp | ✅ تأثير صفري - دفاع متعمق |
| 15 | جميع التخفيفات | ✅ تأثير صفري - حماية قصوى |
### التحقق بعد المعالجة
بعد تطبيق تخفيفات cfDr، تحقق من استمرار عمل الخدمات الحرجة:```bash
# Test SSH connectivity
ssh localhost echo "SSH working"
# Test HTTPS (if web server running)
curl -k https://localhost
# Test LUKS encryption (if using encrypted volumes)
cryptsetup status /dev/mapper/luks-volume
# Test IPsec (if VPN configured)
ipsec status
# Test system services
systemctl status sshd
systemctl status httpd
systemctl status postgresql
# Check for any service failures
systemctl --failed
النتيجة المتوقعة: تستمر جميع الخدمات في العمل بشكل طبيعي.
تؤكد العديد من منظمات الأمن الموثوقة تقييمنا:
CERT-EU (30 أبريل 2026):
"إن إصدارات dm-crypt / LUKS وkTLS وIPsec وSSH والإصدارات الافتراضية من OpenSSL / GnuTLS لا تعتمد على AF_ALG"
Sysdig (29 أبريل 2026):
يوثق أن عمليات التشفير القياسية تستخدم واجهات برمجة التطبيقات داخل النواة، وليس مآخذ AF_ALG
R-fx Networks (2 مايو 2026):
"أحمال عمل الاستضافة لا تستخدم AF_ALG بشكل مشروع، مما يجعل تعطيلها آمنًا كإجراء تخفيف دون التأثير على الخدمات الإنتاجية"
HPCsec (30 أبريل 2026):
"بالنسبة لمعظم بيئات HPC، لن يكسر هذا أي شيء – AF_ALG هو بوابة أمامية لمساحة المستخدم إلى تشفير النواة ولا يستخدمه أي شيء تقريبًا"
لبيئات RHEL/CentOS/Fedora القياسية:
مصفوفة القرار:
| بيئتك | التوصية | السبب |
|---|---|---|
| خوادم RHEL القياسية | نشر العلم 3 الآن | صفر تأثير، حماية فورية |
| RHEL مع تشفير مخصص | تدقيق استخدام AF_ALG أولاً | غير محتمل للغاية، لكن تحقق |
| أنظمة التطوير | نشر العلم 3 الآن | نفس الإنتاج |
| بيئات الأمان العالي | نشر العلم 7 أو 15 | أقصى دفاع متعمق |
إصلاحات cfDr آمنة لجميع عمليات نشر RHEL القياسية. وحدة algif_aead وواجهة مآخذ AF_ALG لا تُستخدم من قبل أي تشفير نظام حرج على أنظمة Enterprise Linux.
ماذا يعني هذا:
الخطر النظري الوحيد هو على التطبيقات المخصصة المبرمجة صراحةً لاستخدام مآخذ AF_ALG - وهو سيناريو نادر لدرجة أن العديد من منظمات الأمن أكدت بشكل مستقل أنه من الآمن حظر AF_ALG في بيئات المؤسسات.
يوازن هذا سير العمل بين الدقة والسلامة التشغيلية:
ansible-playbook -i inventory quickstart.yml
**ما الذي يحدث**:
- يتم تقييم جميع المضيفين
- لا يتم إجراء أي تغييرات
- يتم إنشاء التقارير
**المراجعة**:
- تحقق من `/root/cve-2026-31431-assessment-<hostname>.txt` على كل مضيف
- راجع ملخص المخرجات
- حدد المضيفين المعرضين للخطر
**المخرجات المتوقعة**:```
CVE-2026-31431 Summary Report
==========================================
Total hosts scanned: 50
Vulnerable hosts: 12
VULNERABLE HOSTS REQUIRING REMEDIATION:
web1.example.com, web2.example.com, db1.example.com, ...
DEFAULT RECOMMENDED MITIGATION: Flag 3
- Module Blacklist (1) + SELinux (2) = Defense-in-depth
- Module Blacklist alone can be bypassed by root (via insmod)
- SELinux blocks syscall even if blacklist is bypassed
- Covers user_t/unconfined_t (vast majority of scenarios)
ansible-playbook -i inventory quickstart.yml -e generate_inventory=true -e inventory_output_dir=./vulnerable_hosts
**ماذا يحدث**:
- يتم تحديد المضيفين المعرضين للخطر
- يتم حساب أعلام التخفيف الموصى بها لكل مضيف
- يتم إنشاء ملفات الجرد
**المراجعة**:```bash
# Check generated inventory
cat vulnerable_hosts/vulnerable_hosts.yml
# Review per-host recommendations
ls vulnerable_hosts/host_vars/
ansible-playbook -i vulnerable_hosts/vulnerable_hosts.yml cve_2026_31431_playbook.yml
-e apply_remediation=true
--limit 'dev*:test*'
**ماذا يحدث**:
- يتم تطبيق التخفيفات على مضيفات الاختبار/التطوير فقط
- يتم إعادة تشغيل الخدمات (لـ seccomp)
- يتم إجراء التحقق
**تحقق**:```bash
# Re-scan test hosts
ansible-playbook -i vulnerable_hosts/vulnerable_hosts.yml quickstart.yml --limit 'dev*:test*'
# Check for "PROTECTED - Defense-in-depth" status
تطبيقات الاختبار:
ansible-playbook -i vulnerable_hosts/vulnerable_hosts.yml cve_2026_31431_playbook.yml
-e apply_remediation=true
--limit 'web*'
ansible-playbook -i vulnerable_hosts/vulnerable_hosts.yml cve_2026_31431_playbook.yml
-e apply_remediation=true
--limit 'app*'
ansible-playbook -i vulnerable_hosts/vulnerable_hosts.yml cve_2026_31431_playbook.yml
-e apply_remediation=true
--limit 'db*'
**ماذا يحدث**:
- تتم معالجة كل طبقة على حدة
- تُعاد تشغيل الخدمات طبقة واحدة في كل مرة
- يسمح بالتحقق المرحلي
**المراقبة بين المراحل**:
- التحقق من توفر الخدمات
- مراجعة سجلات التطبيق
- التحقق من تجربة المستخدم
#### الخطوة 5: التحقق والتوثيق```bash
# Final assessment of all hosts
ansible-playbook -i inventory quickstart.yml
المستند:
Total hosts scanned: 50 Vulnerable hosts: 0
All hosts protected with defense-in-depth mitigations
### سير عمل الاستجابة للطوارئ
بالنسبة للأنظمة **المستغلة بنشاط** أو **التهديدات الفورية**:```bash
# Immediate assessment and remediation
ansible-playbook -i inventory quickstart.yml -e apply_remediation=true -e mitigation_flags=3
# Re-verify all hosts
ansible-playbook -i inventory quickstart.yml
استخدم هذا الأسلوب عندما:
تحذير: يطبّق هذا الإجراءات التخفيفية على جميع المضيفين المعرضين للخطر في وقت واحد. راقب عن كثب.
لـ الامتثال المستمر و اكتشاف الأنظمة الجديدة:```bash
0 2 * * 0 ansible-playbook -i inventory quickstart.yml -e generate_inventory=true
**التكامل مع**:
- قاعدة بيانات إدارة التكوين (CMDB)
- إدارة المعلومات والأحداث الأمنية (SIEM)
- أنظمة التذاكر لتتبع المعالجة
### سير عمل التخفيف المخصص
لـ **متطلبات محددة** تتجاوز العلم 3:```bash
# Use enhanced protection (Flag 7: Blacklist + SELinux + seccomp)
ansible-playbook -i inventory quickstart.yml \
-e apply_remediation=true \
-e mitigation_flags=7
# Or customize per-host via inventory
# Edit generated host_vars/*.yml files to set custom flags
vim vulnerable_hosts/host_vars/web1.example.com.yml
# Change: recommended_mitigation_flags: 7
# Apply customized settings
ansible-playbook -i vulnerable_hosts/vulnerable_hosts.yml cve_2026_31431_playbook.yml \
-e apply_remediation=true
بعد المعالجة، تحقق من الحماية:```bash
sudo lsmod | grep algif_aead
sudo modprobe algif_aead
cat /etc/modprobe.d/blacklist-algif_aead-cve-2026-31431.conf
sudo semodule -l | grep cve_2026_31431
systemctl show httpd | grep RestrictAddressFamilies
---
## بدء سريع
للمستخدمين الذين يرغبون في البدء فورًا:
### أبسط استخدام```bash
# Clone repository
git clone https://github.com/parmstro/cfDr.git
cd cfDr
# Step 1: Assess all hosts
ansible-playbook -i inventory quickstart.yml
# Step 2: Apply recommended mitigations to vulnerable hosts
ansible-playbook -i inventory quickstart.yml --limit vulnerable_hosts -e apply_remediation=true
ansible-playbook -i /path/to/your/inventory quickstart.yml
ansible-playbook -i /path/to/your/inventory quickstart.yml
--limit vulnerable_hosts
-e apply_remediation=true
### إنشاء جرد الثغرات الأمنية```bash
# Scan and create inventory of vulnerable hosts
ansible-playbook -i inventory quickstart.yml -e generate_inventory=true
# Review generated files
ls inventory_output/
# Apply mitigations using generated inventory
ansible-playbook -i inventory_output/vulnerable_hosts.yml cve_2026_31431_playbook.yml \
-e apply_remediation=true
تجاوز التخفيفات الافتراضية لكل تشغيل لـ playbook:```bash
ansible-playbook quickstart.yml -e apply_remediation=true -e mitigation_flags=1
ansible-playbook quickstart.yml -e apply_remediation=true -e mitigation_flags=2
ansible-playbook quickstart.yml -e apply_remediation=true -e mitigation_flags=3
ansible-playbook quickstart.yml -e apply_remediation=true -e mitigation_flags=7
ansible-playbook quickstart.yml -e apply_remediation=true -e mitigation_flags=15
### تخصيص نطاقات SELinux
قم بتحرير `roles/cve_2026_31431/defaults/main.yml`:```yaml
# Add additional domains to protect
selinux_denied_domains:
- user_t
- unconfined_t
- httpd_t
- postgresql_t
- mysqld_t
- custom_app_t # Your custom domain
- another_service_t
قم بتحرير roles/cve_2026_31431/defaults/main.yml:```yaml
seccomp_protected_services:
### دليل مخرجات الجرد المخصص```bash
# Specify custom output location
ansible-playbook quickstart.yml \
-e generate_inventory=true \
-e inventory_output_dir=/path/to/output
يحتوي sample_playbook.yml على أمثلة متعددة:```yaml
### المتطلبات
- **Ansible**: 2.9 أو أحدث (يُوصى بـ 2.15+)
- **صلاحيات مميزة**: sudo/root على المضيفين المستهدفين
- **Python**: 2.7 أو 3.5+ على المضيفين المستهدفين
- **أنظمة التشغيل المدعومة**: Red Hat Enterprise Linux وCentOS وFedora (دعم محدود لـ Debian/Ubuntu)
---
## موارد إضافية
### معلومات وتحليل CVE
**المصادر الرسمية**:
- [NVD - CVE-2026-31431](https://nvd.nist.gov/vuln/detail/CVE-2026-31431)
- [إدخال MITRE لـ CVE](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-31431)
**البحث والتحليل الأمني**:
- [Sysdig - تحليل CVE-2026-31431](https://www.sysdig.com/blog/cve-2026-31431-copy-fail-linux-kernel-flaw-lets-local-users-gain-root-in-seconds)
- [The Hacker News - ثغرة Copy Fail](https://thehackernews.com/2026/04/new-linux-copy-fail-vulnerability.html)
- [نشرة CERT-EU الأمنية](https://cert.europa.eu/publications/security-advisories/2026-005/)
- [Help Net Security - تفاصيل Copy Fail](https://www.helpnetsecurity.com/2026/04/30/copyfail-linux-lpe-vulnerability-cve-2026-31431/)
### مشاريع التخفيف ذات الصلة
مساهمات المجتمع لتخفيف CVE-2026-31431:
- **[block-copyfail](https://github.com/atgreen/block-copyfail)** - تنفيذ eBPF LSM بواسطة Anthony Green
- تخفيف شامل قائم على eBPF
- حماية على مستوى النظام للنوى الحديثة
- المصدر لتنفيذ cfDr الخاص بـ eBPF
- **[Blastwall](https://gprocunier.github.io/blastwall/demo.html)** - إطار عمل سياسات SELinux بواسطة Greg Procunier
- إدارة متقدمة لسياسات SELinux
- إطار حماية متعدد CVE
- المصدر لتنفيذ cfDr الخاص بـ SELinux
### موارد Red Hat المحددة
**مقالات قاعدة المعرفة**:
- [بوابة عملاء Red Hat - CVE-2026-31431](https://access.redhat.com/security/cve/cve-2026-31431)
- [بيانات أمان Red Hat - المنتجات المتأثرة](https://access.redhat.com/security/data/metrics/)
**أدلة التخفيف**:
- [SELinux لـ Enterprise Linux - دليل المستخدم](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/using_selinux/)
- [ميزات أمان systemd](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/managing_systems_using_the_rhel_9_web_console/securing-systemd-services_system-management-using-the-rhel-9-web-console)
### التوثيق
**توثيق cfDr الموسع**:
- [دليل تخفيف Enterprise Linux](https://github.com/parmstro/cfdr/blob/HEAD/enterprise-linux-mitigations.md) - مقارنة شاملة لجميع طرق التخفيف
- [دليل تخفيف SELinux](https://github.com/parmstro/cfdr/blob/HEAD/selinux-mitigation.md) - تنفيذ مفصل لسياسات SELinux
- [دليل تخفيف seccomp](https://github.com/parmstro/cfdr/blob/HEAD/seccomp-mitigation.md) - تنفيذ مرشح seccomp الخاص بـ systemd
- [دليل تخفيف eBPF LSM](https://github.com/parmstro/cfdr/blob/HEAD/ebpf-lsm-mitigation.md) - تنفيذ برنامج eBPF LSM
- [docs/CONTRIBUTORS.md](https://github.com/parmstro/cfdr/blob/HEAD/CONTRIBUTORS.md) - إرشادات المساهمة والاعتمادات
**توثيق Ansible**:
- [دليل مستخدم Ansible](https://docs.ansible.com/ansible/latest/user_guide/)
- [أفضل ممارسات Ansible](https://docs.ansible.com/ansible/latest/user_guide/playbooks_best_practices.html)
---
## مراقبة التصحيحات
### Red Hat Enterprise Linux
**المصدر الأساسي**: بوابة عملاء Red Hat
- **النشرات الأمنية**: https://access.redhat.com/security/security-updates/
- **نشرات Errata**: https://access.redhat.com/errata/
- **متعقب CVE**: https://access.redhat.com/security/cve/cve-2026-31431
**طرق الإشعار**:
1. **تنبيهات البريد الإلكتروني** (موصى بها):
- سجّل الدخول إلى بوابة عملاء Red Hat
- انتقل إلى: إعدادات الحساب ← الإشعارات
- فعّل: "النشرات الأمنية" و"Errata المنتجات"
- حدد: إصدارات RHEL التي تديرها
2. **خلاصات RSS**:
- أمان RHEL 7: https://access.redhat.com/blogs/766093/feed
- أمان RHEL 8: https://access.redhat.com/blogs/1683903/feed
- أمان RHEL 9: https://access.redhat.com/blogs/5480361/feed
- جميع الأمان: https://access.redhat.com/security/data/oval/com.redhat.rhsa-all.xml
3. **الوصول عبر API**: ```bash
# Check for kernel security updates
curl -H "Accept: application/json" \
"https://access.redhat.com/labs/securitydataapi/cve/CVE-2026-31431.json"
المراقبة الآلية: ```bash
sudo yum install yum-plugin-security
sudo yum updateinfo list security
sudo yum updateinfo list security kernel
ما الذي يجب البحث عنه:
مثال على تنسيق النشرة:``` RHSA-2026:XXXX - Important: kernel security update Severity: Important CVEs: CVE-2026-31431 Affected Products: RHEL 7, 8, 9
### CentOS / Rocky Linux / AlmaLinux
**CentOS Stream**:
- **الإعلانات**: https://lists.centos.org/pipermail/centos-announce/
- **القائمة البريدية الأمنية**: https://lists.centos.org/mailman/listinfo/centos-security-announce
**Rocky Linux**:
- **متعقب الأمان**: https://errata.rockylinux.org/
- **الإعلانات**: https://rockylinux.org/news/
**AlmaLinux**:
- **التصحيحات (Errata)**: https://errata.almalinux.org/
- **الأمان**: https://wiki.almalinux.org/security/
### Fedora
**المصدر الأساسي**: مشروع Fedora
- **نظام التحديثات**: https://bodhi.fedoraproject.org/
- **القائمة الأمنية**: https://lists.fedoraproject.org/archives/list/[email protected]/
**طرق الإشعار**:```bash
# Subscribe to security announcements
# Visit: https://lists.fedoraproject.org/admin/lists/security-announce.lists.fedoraproject.org/
# Check for updates
sudo dnf check-update kernel
# View available security updates
sudo dnf updateinfo list security
المصدر الأساسي: إشعارات أمان أوبونتو
طرق الإشعار:```bash
sudo apt update sudo apt list --upgradable | grep security
sudo apt install ubuntu-security-tools usn list --cve CVE-2026-31431
### Debian
**المصدر الأساسي**: متتبع أمان Debian
- **متتبع الأمان**: https://security-tracker.debian.org/tracker/CVE-2026-31431
- **إعلانات الأمان**: https://www.debian.org/security/
**طرق الإشعار**:```bash
# Subscribe to Debian Security Announcements
# Visit: https://lists.debian.org/debian-security-announce/
# Check for security updates
sudo apt update
sudo apt list --upgradable
المصدر الأساسي: SUSE Security
طرق الإشعار:```bash
sudo zypper list-patches --category security
sudo zypper info --cve CVE-2026-31431
### النواة الرئيسية (Upstream Kernel)
**القائمة البريدية لنواة لينكس**:
- **أرشيف LKML**: https://lkml.org/
- **قائمة الأمان**: https://www.kernel.org/category/releases.html
**مستودع Git**:```bash
# Monitor kernel git for patches
git clone https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
# Search for CVE-2026-31431 patches
git log --all --grep="CVE-2026-31431"
أنشئ سكربت مراقبة لبيئتك:```bash #!/bin/bash
DISTRO=$(grep ^ID= /etc/os-release | cut -d= -f2 | tr -d '"')
case $DISTRO in rhel|centos|rocky|alma) yum updateinfo list security kernel 2>/dev/null | grep -i CVE-2026-31431 ;; fedora) dnf updateinfo list security kernel 2>/dev/null | grep -i CVE-2026-31431 ;; ubuntu|debian) apt-get update -qq apt-cache show linux-image-$(uname -r) | grep CVE-2026-31431 ;; sles|opensuse*) zypper info --cve CVE-2026-31431 kernel-default ;; esac
curl -s "https://access.redhat.com/labs/securitydataapi/cve/CVE-2026-31431.json" |
jq -r '.affected_release[] | select(.package | startswith("kernel")) |
"(.product_name): (.advisory) - (.package)"'
**الجدولة باستخدام cron**:```bash
# Check daily for patches
0 6 * * * /usr/local/bin/check-cve-2026-31431-patch.sh | mail -s "CVE-2026-31431 Patch Check" [email protected]
تحقق من توفر التصحيح: ```bash
sudo yum check-update kernel # RHEL/CentOS/Fedora sudo apt update && apt list --upgradable linux-image-* # Ubuntu/Debian
مراجعة ملاحظات الإصدار:
الاختبار في بيئة غير إنتاجية: ```bash
sudo yum update kernel # RHEL/CentOS/Fedora sudo apt upgrade linux-image-* # Ubuntu/Debian sudo reboot
التحقق من فعالية التصحيح: ```bash
uname -r
ansible-playbook -i inventory quickstart.yml
خطة الطرح للإنتاج:
إزالة التخفيفات المؤقتة (اختياري): ```bash
sudo rm /etc/modprobe.d/blacklist-algif_aead-cve-2026-31431.conf sudo semodule -r cve_2026_31431_af_alg_deny # SELinux policy
توصية: حتى بعد تطبيق تصحيحات النواة، يُنصح بالاحتفاظ بـإجراءات التخفيف الدفاعية المتعمقة كحماية ضد الثغرات المستقبلية.
وجدت خطأً أو لديك طلب ميزة؟
نرحب بالمساهمات! راجع docs/CONTRIBUTORS.md لمعرفة:
تم بناء cfDr على الخبرة الجماعية لمتخصصي الأمن:
راجع docs/CONTRIBUTORS.md للحصول على تفاصيل المساهمة الكاملة.
يُقدَّم هذا المشروع بموجب رخصة MIT لأغراض تقييم الثغرات ومعالجتها.
راجع LICENSE للحصول على التفاصيل.
هام: توفر هذه الأداة تخفيفات مؤقتة أثناء انتظار تصحيحات النواة المقدمة من البائعين. تقلل هذه التخفيفات من المخاطر بشكل كبير ولكنها قد لا توفر حماية كاملة في جميع السيناريوهات.
يُقدَّم cfDr "كما هو" دون أي ضمان. دائماً:
المساهمون والمشرفون على cfDr غير مسؤولين عن أي ضرر أو فقدان بيانات ناتج عن استخدام هذه الأداة.
آخر تحديث: 2026-05-02T23:30:00Z