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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/GitHubGitHub/mym0us3r/copy-fail-detection-with-wazuh-4.14.4
تصعيد الامتيازاتتحليل الثغرات الأمنيةتدقيق التكويناستخبارات التهديداتكشف التسلل
GitHubmym0us3r/copy-fail-detection-with-wazuh-4.14.4

COPY-FAIL-Detection-with-Wazuh-4.14.4

قواعد كشف Wazuh 4.14.4 لثغرة CVE-2026-31431 (Copy Fail) - تصعيد الامتيازات المحلية في لينكس عبر كتابة ذاكرة التخزين المؤقت للصفحات في authencesn

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
عرض المستودع
9منذ 3 أشهرلم تتم المراجعة بعد

كشف COPY FAIL باستخدام Wazuh 4.14.4 - CVE-2026-31431

هندسة الكشف لثغرة تصعيد الصلاحيات في نواة لينكس Copy Fail · Ubuntu / RHEL / SUSE / Amazon Linux 2023 / Kali

rules sca status mitre cve


ما هي Copy Fail؟

CVE-2026-31431 هي خلل منطقي في قالب التشفير authencesn في نواة لينكس. تسمح لأي مستخدم محلي غير مميز بتنفيذ كتابة محكومة وحتمية بحجم 4 بايت في ذاكرة التخزين المؤقت للصفحات (page cache) لأي ملف قابل للقراءة على النظام - دون الحاجة إلى سباقات (race conditions)، أو عناوين نواة، أو صلاحيات مرتفعة.

سكربت بايثون 3.10+ بحجم 732 بايت يستخدم فقط وحدات المكتبة القياسية (os, socket, zlib) يستغل الثغرة للحصول على صلاحيات الجذر (root) على جميع توزيعات لينكس الرئيسية الصادرة منذ 2017.

الملف على القرص يبقى دون تغيير، مما يجعل مراقبة سلامة الملفات التقليدية (FIM) عمياء تمامًا.

تم اكتشافها بواسطة Taeyang Lee (Theori / Xint) بمساعدة أداة الذكاء الاصطناعي Xint Code.


المراجع الرسمية


لماذا يفشل FIM - ولماذا يوجد هذا المستودع

الكتابة تستهدف فقط ذاكرة التخزين المؤقت للصفحات في الذاكرة. النواة لا تعلّم الصفحة على أنها متسخة (dirty)، لذا فإن آلية الكتابة الخلفية (writeback) لا تحفظها على القرص أبدًا. الملف الثنائي على القرص يبقى مطابقًا حرفيًا للأصل.

root@kitploit:~
النهج التقليدي لـ FIM:
  قراءة الملف من القرص -> حساب التجزئة -> المقارنة -> لا يوجد شذوذ مبلّغ عنه

واقع Copy Fail:
  الملف على القرص = دون تغيير
  ذاكرة التخزين المؤقت للصفحات = تالفة
  نتيجة FIM = عمياء

الكشف الفعال الوحيد هو سلوكي، عبر مراقبة استدعاءات النظام (syscalls). يوفر هذا المستودع قواعد Wazuh مُتحققًا منها في بيئات الإنتاج تكتشف سلسلة الاستغلال على مستوى استدعاءات النواة.


سلسلة الاستغلال

root@kitploit:~
الخطوة 1: socket(38, 5, 0)       مقبس AF_ALG - لا يتطلب صلاحيات
الخطوة 2: bind()                  الربط بـ authencesn - تفعيل الكود الضعيف
الخطوة 3: sendmsg()               صياغة حمولة AAD - البايتات 4-7 = القيمة المراد كتابتها
الخطوة 4: splice()          [!]   المشغّل - صفحات ذاكرة التخزين المؤقت تدخل SGL قابلة للكتابة
الخطوة 5: recv()                  authencesn يكتب seqno_lo في ذاكرة التخزين المؤقت للصفحات
الخطوة 6: execve(/usr/bin/su)     الثنائي التالف setuid يشغّل شيلكود بصلاحيات UID 0

سلسلة استغلال CVE-2026-31431

سplice() هي الخطوة الحرجة. فهي تُسلّم صفحات ذاكرة التخزين المؤقت إلى قائمة التشتت القابلة للكتابة (scatterlist) لمقبس AF_ALG دون نسخ - تحسين في المكان (in-place) من 2017 في algif_aead.c جعل الصفحات من مخزن الأنبوب (pipe buffer) قابلة لإعادة الاستخدام في SGL الوجهة. عندما يعمل authencesn.decrypt()، يكتب في تلك الصفحات، والتي تصادف أنها ذاكرة التخزين المؤقت للملف المستهدف.


التوزيعات المتأثرة

جميع توزيعات لينكس التي تشحن أنوية منذ الالتزام 72548b093ee3 (2017) متأثرة.

الهروب من الحاويات: Copy Fail هي أيضًا ناقل للهروب من الحاويات. ذاكرة التخزين المؤقت للصفحات مشتركة بين جميع العمليات على المضيف، بما في ذلك عبر حدود الحاويات. الجزء الثاني من Xint يغطي استغلال Kubernetes.


هيكل المستودع

root@kitploit:~
COPY-FAIL-Detection-with-Wazuh-4.14.4/
│
├── rules/
│   └── local_rules.xml              # 8 قواعد كشف Wazuh (199600-199607)
│
├── auditd/
│   └── cve-2026-31431.rules         # قواعد مستشعر استدعاءات النظام auditd
│
├── sca/
│   └── cve_2026_31431.yml           # سياسة SCA - مستقلة عن إصدار النواة
│
└── docs/
    ├── pentlab_uid.png               # تنفيذ إثبات المفهوم - الحصول على الجذر على Kali
    ├── Rule-199604-TRIGs.png         # القاعدة 199604 - 80 إصابة على pentlab
    ├── Rule_199604_Wazuh_Server_only.png  # القاعدة 199604 - التحقق الأول
    ├── Splice_-_Non-root_process.png # القواعد 199600/199601/199604 تعمل
    ├── Modprobe_-_Possible_Algif_aed_load_attempt.png  # القاعدة 199603
    ├── Pentlab-PoC.png               # القاعدة 199603 على وكيل pentlab
    ├── exploit_chain_timeline.svg    # سلسلة الاستغلال
    └── SCA_CVE-2026-31431.png        # نتيجة سياسة SCA 75%

بنية الكشف

طبقتان مستقلتان — لا تعتمدان على إصدار النواة.

الطبقة 1 - الكشف السلوكي (auditd + Wazuh)

مرشح uid!=0 يغطي المستخدمين بما يتجاوز الحسابات التفاعلية: حسابات الخدمات (www-data, postgres, jenkins)، الحاويات، وقذائف الويب دون جلسة تسجيل دخول.

قواعد مستشعر auditd (auditd/cve-2026-31431.rules):

root@kitploit:~
-a always,exit -F arch=b64 -S socket -F a0=0x26 -F uid!=0 -k copy_fail_af_alg
-a always,exit -F arch=b32 -S socket -F a0=0x26 -F uid!=0 -k copy_fail_af_alg
-a always,exit -F arch=b64 -S splice -F uid!=0 -k copy_fail_splice
-w /usr/bin/su    -p x -k copy_fail_execve_su
-w /usr/bin/kmod  -p x -k copy_fail_modload

الطبقة 2 - سطح الثغرة (سياسة SCA)

فحوصات تكوين آلية كل 12 ساعة عبر sca/cve_2026_31431.yml. لا يتطلب إصدار نواة.

بنية سلسلة القواعد

ملاحظة هندسية: يجب أن تكون القاعدتان 199600 و199601 فرعيتين للقاعدة 92600 (عملية بايثون، العمق 1)، وليس لـ 80700. محرك قواعد Wazuh يتبع مسار سلسلة واحد لكل حدث. وضع قواعد الكشف في العمق 2 تحت 92600 يضمن فوزها في تقييم السلسلة على القواعد الشقيقة (مثل 92603-92606 في 0850-audit_rules.xml والتي تطابق أيضًا if_group=audit + exe=python).


النشر

الخطوة 1 - تثبيت auditd

root@kitploit:~
# Ubuntu / Debian / Kali
apt install auditd audispd-plugins -y
systemctl enable --now auditd
auditctl -s | grep enabled
root@kitploit:~
# RHEL / Amazon Linux
yum install audit -y
systemctl enable --now auditd
root@kitploit:~
# SUSE
zypper install audit -y
systemctl enable --now auditd

الخطوة 2 - نشر قواعد مستشعر auditd

root@kitploit:~
cp auditd/cve-2026-31431.rules /etc/audit/rules.d/
augenrules --load
auditctl -l | grep copy_fail

المخرجات المتوقعة:

root@kitploit:~
-a always,exit -F arch=b64 -S socket -F a0=0x26 -F uid!=0 -F key=copy_fail_af_alg
-a always,exit -F arch=b32 -S socket -F a0=0x26 -F uid!=0 -F key=copy_fail_af_alg
-a always,exit -F arch=b64 -S splice -F uid!=0 -F key=copy_fail_splice
-w /usr/bin/su -p x -k copy_fail_execve_su
-w /usr/bin/kmod -p x -k copy_fail_modload

الخطوة 3 - نشر قواعد كشف Wazuh

القواعد مقدمة في rules/local_rules.xml. يمكنك إما دمج المحتوى في ملف /var/ossec/etc/rules/local_rules.xml الحالي أو نشره كملف مستقل:

root@kitploit:~
# الخيار أ - ملف مستقل
cp rules/local_rules.xml /var/ossec/etc/rules/cve-2026-31431_rules.xml

# الخيار ب - الإلحاق بـ local_rules.xml
cat rules/local_rules.xml >> /var/ossec/etc/rules/local_rules.xml
root@kitploit:~
# التحقق من الصيغة - يجب أن يخرج بـ 0 مع صفر تحذيرات
/var/ossec/bin/wazuh-analysisd -t 2>&1 | tail -5

# إعادة تشغيل المدير
systemctl restart wazuh-manager

الخطوة 4 - نشر سياسة SCA

root@kitploit:~
cp sca/cve_2026_31431.yml /var/ossec/etc/shared/default/

أضف إلى ossec.conf داخل كتلة <sca>:

root@kitploit:~
<policies>
  <policy>/var/ossec/etc/shared/default/cve_2026_31431.yml</policy>
</policies>
root@kitploit:~
systemctl restart wazuh-manager

الخطوة 5 - تكوين localfile في ossec.conf

تأكد من أن Wazuh يستوعب سجل auditd:

root@kitploit:~
<!-- أضف داخل <ossec_config> -->
<localfile>
  <log_format>audit</log_format>
  <location>/var/log/audit/audit.log</location>
</localfile>

التحقق

اختبار سريع (بدون استغلال - استدعاءات نظام فقط)

root@kitploit:~
# إنشاء مستخدم اختبار إذا لزم الأمر
useradd -m testuser 2>/dev/null || true

# توليد الإشارة 1 - مقبس AF_ALG
su - testuser -c "python3 -c \"import socket; socket.socket(38, 5, 0); print('AF_ALG OK')\""

# توليد الإشارة 3 - تنفيذ /usr/bin/su
su - testuser -c "/usr/bin/su --help 2>/dev/null || true"

# التحقق من التقاط auditd للأحداث
ausearch -k copy_fail_af_alg -ts recent 2>/dev/null | grep "key=\|exe=\|uid=" | head -5

# التحقق من توليد Wazuh للتنبيهات
grep -E "199600|199602" /var/ossec/logs/alerts/alerts.log | tail -10

التحقق من نتائج SCA

root@kitploit:~
grep -E "31431|cve_2026" /var/ossec/logs/alerts/alerts.log | tail -10

نتيجة SCA المتوقعة (نظام غير مخفف): 75% (3 ناجحة / 1 فاشلة - algif_aead غير مدرج في القائمة السوداء)


أدلة التحقق في بيئة الإنتاج

تنفيذ إثبات المفهوم - الحصول على الجذر على Kali (pentlab)

testuser (uid=1001) نفّذ إثبات المفهوم بحجم 732 بايت وحصل على قشرة جذر:

إثبات المفهوم - الحصول على الجذر على Kali


القاعدة 199604 - تم اكتشاف سلسلة الاستغلال (pentlab، 80 إصابة)

مقبس AF_ALG + splice() من نفس عملية بايثون - pid=46784 - التحقيق الفوري مطلوب:

القاعدة 199604 - pentlab 80 إصابة


القاعدة 199604 - التحقق الأول (خادم Wazuh، pid=53447)

القاعدة 199604 - خادم Wazuh


القواعد 199600 / 199601 / 199604 - تفعيل splice() و AF_ALG

splice و AF_ALG - عملية غير جذرية


القاعدة 199603 - تم اكتشاف تنفيذ modprobe (93 إصابة)

Modprobe - محاولة تحميل algif_aead محتملة


القاعدة 199603 - وكيل pentlab (35 إصابة)

Pentlab - القاعدة 199603


سياسة SCA - النتيجة 75% (3 ناجحة / 1 فاشلة)

SCA CVE-2026-31431


نتائج اكتشاف لوحة تحكم Wazuh (الوكيل=pentlab، اليوم):

wazuh-analysisd -t: خروج 0 - صفر تحذيرات - تم تحميل جميع القواعد الثماني.


المعالجة

التخفيف الفوري (قبل التصحيح)

root@kitploit:~
rmmod algif_aead 2>/dev/null || true
echo 'install algif_aead /bin/false' > /etc/modprobe.d/disable-algif-aead.conf

هذا لا يؤثر على dm-crypt/LUKS، أو kTLS، أو IPsec، أو OpenSSL، أو GnuTLS، أو SSH.

الإصلاح الدائم

طبّق التزام النواة a664bf3d603d عبر تحديث نواة توزيعتك. يعيد التراجع عن تحسين 2017 في المكان في algif_aead.c، ويفصل req->src (TX SGL، حيث يُسلّم splice الصفحات) عن req->dst (RX SGL، مخزن المستخدم). جميع التوزيعات الرئيسية تشحن الإصلاح.

root@kitploit:~
# Ubuntu / Debian
apt update && apt upgrade linux-generic

# RHEL / Amazon Linux
dnf update kernel

# SUSE
zypper update kernel-default

الجدول الزمني للإفصاح


المقارنة مع ثغرات مشابهة


ملخص سياسة SCA


المؤلف

Kislley Rodrigues (m0us3r) سفير Wazuh | هندسة الكشف | الفريق الأزرق


الشكر والتقدير

  • Taeyang Lee (Theori / Xint) لاكتشاف الثغرة والمقال والإفصاح المنسق لـ CVE-2026-31431
  • فريق Wazuh لمنصة SIEM/XDR مفتوحة المصدر وبرنامج السفراء
  • Xint Research للعمق التقني على https://xint.io/blog/copy-fail-linux-distributions

قواعد الكشف، وتكوين مستشعر auditd، وسياسة SCA تم التحقق منها على Wazuh 4.14.4، وUbuntu 24.04.2 LTS (النواة 6.8.0-106-generic)، وKali GNU/Linux 2026.1 (النواة 6.18.12+kali-amd64).


تحديث 2026-05-03

المصدرالرابط
CISA تضيف ثغرة الوصول الجذري في لينكس المستغلة بنشاط CVE-2026-31431 إلى KEVhttps://thehackernews.com/2026/05/cisa-adds-actively-exploited-linux-root.html


Wazuh

تم تطوير هذا المشروع كجزء من برنامج سفراء Wazuh.

Wazuh هي منصة أمنية مجانية ومفتوحة المصدر توفر حماية موحدة عبر XDR وSIEM. تعرف على المزيد على wazuh.com.

تنزيل الأداة
المصدرالرابط
موقع CVE الرسميhttps://copy.fail/
المقال التقني - Xint Researchhttps://xint.io/blog/copy-fail-linux-distributions
إثبات المفهوم - copy_fail_exp.pyhttps://github.com/theori-io/copy-fail-CVE-2026-31431/blob/main/copy_fail_exp.py
إصلاح النواة - a664bf3d603dhttps://github.com/torvalds/linux/commit/a664bf3d603d
الالتزام الضعيف - 72548b093ee3https://github.com/torvalds/linux/commit/72548b093ee3
MITRE ATT&CK T1068https://attack.mitre.org/techniques/T1068/
التوزيعةالنواةالحالة
Ubuntu 24.04 LTS6.17.0-1007-awsROOT CONFIRMED
Amazon Linux 20236.18.8-9.213.amzn2023ROOT CONFIRMED
RHEL 10.16.12.0-124.45.1.el10_1ROOT CONFIRMED
SUSE 166.12.0-160000.9-defaultROOT CONFIRMED
Kali GNU/Linux 2026.16.18.12+kali-amd64ROOT CONFIRMED
القاعدةالأصلالإشارةالعمقالمستوى
80700decoded_as=auditdمرساة auditd (مدمجة في Wazuh)00
9260080700تنفيذ عملية بايثون (مدمجة في Wazuh)10
19960092600مقبس AF_ALG - سلسلة بايثون210
19960192600استدعاء النظام splice() - سلسلة بايثون210
199604199601 + if_matched=199600سلسلة الاستغلال - بايثون (نفس pid/120 ثانية)315
19960280700تنفيذ /usr/bin/su16
19960380700تنفيذ modprobe/kmod112
19960580700مقبس AF_ALG - غير بايثون110
19960680700استدعاء النظام splice() - غير بايثون110
199607199606 + if_matched=199605سلسلة الاستغلال - غير بايثون (نفس pid/120 ثانية)215
القاعدةالإصاباتالوصف
19960480تم اكتشاف سلسلة الاستغلال - pid=46784 exe=/usr/bin/python3.13
19960040تم إنشاء مقبس AF_ALG بواسطة عملية غير جذرية
19960328تم اكتشاف تنفيذ modprobe
19960212تم تنفيذ /usr/bin/su
التاريخالحدث
2026-03-23تم الإبلاغ عن الثغرة لفريق أمن نواة لينكس
2026-03-24تم استلام التأكيد الأولي
2026-03-25تم اقتراح التصحيحات ومراجعتها
2026-04-01تم الالتزام بالتصحيح في النواة الرئيسية (a664bf3d603d)
2026-04-22تم تعيين CVE-2026-31431
2026-04-29الإفصاح العام - مقال Xint + نشر إثبات المفهوم
Dirty Cow (2016-5195)Dirty Pipe (2022-0847)Copy Fail (2026-31431)
سباق (Race condition)نعم - محاولات متعددةلالا - منطق حتمي
يمكن أن يعطل النظامنعملالا
قابلية النقلمحدودةخاصة بالإصدارجميع التوزيعات 2017+
حجم الاستغلالكيلوبايتات (C)مئات البايتات732 بايت (مكتبة بايثون القياسية)
كشف FIMممكنممكنغير ممكن
الفحصالعنوانالمخاطر
31431001algif_aead غير محمّل في الذاكرةحرجة
31431002algif_aead معطّل عبر modprobe.dعالية
31431003auditd نشط ويعملعالية
31431004قواعد مستشعر CVE-2026-31431 منشورةعالية
كتالوج الثغرات المستغلة المعروفةhttps://www.cisa.gov/known-exploited-vulnerabilities-catalog
CVE-2026-31431 - crypto: algif_aead - العودة إلى العمل خارج المكانhttps://www.cve.org/CVERecord?id=CVE-2026-31431