
قواعد كشف Wazuh 4.14.4 لـ CVE-2026-43284 / CVE-2026-43500 (Dirty Frag) - تصعيد الامتيازات المحلي في لينكس عبر كتابة ذاكرة التخزين المؤقت للصفحات
هندسة الكشف لثغرة Dirty Frag في تصعيد الامتيازات المحلية للنواة - Ubuntu / RHEL / Debian / Amazon Linux
CVE-2026-43284 / CVE-2026-43500 هو ثغرة تصعيد امتيازات محلية (LPE) في نواة Linux، تجمع بين بدائيتي كتابة مستقلتين في ذاكرة التخزين المؤقت للصفحات (page-cache) للوصول إلى صلاحيات الجذر (root) من حساب مستخدم غير مميز. ملف ثنائي واحد مُجمَّع يحقق صلاحيات الجذر على جميع توزيعات Linux الرئيسية. لا يوجد شرط سباق (race condition). لا يوجد حقن كومة (heap spray). لا حاجة إلى إزاحة kernel.
المتغير 1 - CVE-2026-43284 (xfrm-ESP):``` unshare(CLONE_NEWUSER|CLONE_NEWNET) -> register XFRM SA via netlink (CAP_NET_ADMIN inside new namespace) -> vmsplice(ESP header into pipe) -> splice(target file into pipe) -> splice(pipe to UDP socket) -> esp_input() in-place AEAD decrypt writes 4 bytes into page cache
**البديل 2 - CVE-2026-43500 (RxRPC):**```
add_key("rxrpc", ...) no privileges required
-> socket(AF_RXRPC=35)
-> RxRPC handshake + forged DATA packet
-> vmsplice(RxRPC wire header into pipe)
-> splice(target file into pipe)
-> splice(pipe to UDP socket)
-> rxkad_verify_packet_1() in-place pcbc(fcrypt) decrypt writes 8 bytes into page cache
عندما يتم حظر CLONE_NEWUSER بواسطة AppArmor (الافتراضي في Ubuntu 24.04+)، يتحول الاستغلال تلقائيًا من متغير ESP إلى متغير RxRPC. يحقق نفس الملف الثنائي صلاحية الجذر في كلتا الحالتين.
حرج: لا يحمي تخفيف Copy Fail (إدراج
algif_aeadفي القائمة السوداء) من Dirty Frag. يشترك الثغرتان في نفس نقطة الانهيار authencesn، لكن Dirty Frag يتم تشغيله عبر مسار كود مختلف تمامًا. إذا قمت بنشر تخفيف Copy Fail، فأنت لا تزال معرضًا للخطر.
تم الاكتشاف والنشر بواسطة V4bel - https://github.com/V4bel/dirtyfrag
يكتب Dirty Frag مباشرة في ذاكرة التخزين المؤقت للصفحات داخل الذاكرة. لا يتم تعديل الملف الثنائي على القرص أبدًا. لا تقوم النواة أبدًا بوضع علامة على الصفحة التالفة كقذرة، لذلك لا يتم تنفيذ إعادة الكتابة أبدًا. يكون ملف القرص مطابقًا حرفيًا للأصل قبل الاستغلال وبعده.``` Traditional FIM approach: read file from disk -> compute hash -> compare -> no anomaly reported
Dirty Frag reality: on-disk /usr/bin/su = UNCHANGED page cache of /usr/bin/su = CONTAINS ROOT SHELL ELF FIM result = BLIND
الكشف الفعّال الوحيد هو الكشف السلوكي عبر مراقبة استدعاءات النظام على مستوى النواة. يوفر هذا المستودع قواعد Wazuh المُتحقَّق منها في بيئات الإنتاج، والتي تكتشف كلا متغيرَي الاستغلال على مستوى استدعاءات النظام، بغض النظر عن إصدار النواة أو حالة التصحيح.
---
## سلسلة الاستغلال```
ESP variant (CVE-2026-43284):
unshare(CLONE_NEWUSER) privilege boundary bypass via user namespace
-> XFRM SA registration CAP_NET_ADMIN gained inside new netns
-> vmsplice() [!] ESP header planted into pipe
-> splice() [!] /usr/bin/su page cache enters pipe
-> splice() pipe delivered to UDP socket
-> esp_input() decrypt 4 bytes written deterministically into page cache
-> execve(/usr/bin/su) corrupted setuid binary runs shellcode as UID 0
RxRPC variant (CVE-2026-43500):
add_key("rxrpc") session key K planted - no privileges needed
-> socket(AF_RXRPC) rxrpc.ko auto-loaded
-> vmsplice() [!] RxRPC wire header planted into pipe
-> splice() [!] /etc/passwd page cache enters pipe
-> splice() pipe delivered to UDP socket
-> rxkad_verify_packet_1() 8 bytes written deterministically into page cache
-> su - /etc/passwd root entry has empty password field
إن تلف ذاكرة التخزين المؤقت للصفحات هو اللبنة الأساسية في كلا المتغيرين. vmsplice يحقن رأس البروتوكول الذي يتحكم فيه المهاجم في الأنبوب. splice يسلّم صفحات ذاكرة التخزين المؤقت للملف الهدف إلى نفس الأنبوب دون نسخ. عندما تعالج النواة المخزن المؤقت المدمج عبر مسار فك التشفير، تكتب البايتات التي يتحكم فيها المهاجم إلى ذاكرة التخزين المؤقت للصفحات في الملف الهدف.
جميع نوى لينكس منذ 2017 متأثرة. تقييد AppArmor unprivileged_userns في Ubuntu 24.04+ يمنع البديل ESP لكن بديل RxRPC يتحايل عليه تمامًا.
CVE-2026-43284 (ESP): ضمن النطاق من الالتزام
cac2661c53f3(2017-01-17) حتىf4c50a4034e6(2026-05-05) - تم إصلاحه في النواة الرئيسيةCVE-2026-43500 (RxRPC): ضمن النطاق من الالتزام
2dc334f1a63a(2023-06-08) حتى upstream - لا يوجد تصحيح بعد
DIRTY-FRAG-Detection-with-Wazuh-4.14.4/ | |- rules/ | '- local_rules.xml # 9 Wazuh detection rules (200000-200008) | |- auditd/ | '- cve-dirty-frag.rules # auditd syscall sensor rules (v2 - auid fix) | |- sca/ | '- cve-dirty-frag.yml # SCA policy - kernel-version independent | '- docs/ |- dirty_frag_dash_rules.png # Wazuh Rules Management - 200000-200008 deployed and active |- SCA.png # SCA policy score 50% - 3 passed / 3 failed |- SCA-hits.png # Wazuh Discover - SCA check results across 3 scan cycles |- discover-dirty-frag.png # Wazuh Discover - 52 hits - initial validation run (May 8) '- discover-dirty-frag_more.png # Wazuh Discover - 13 hits - chain rule 200007 level 15 (May 15)
> **ملاحظة حول local_rules.xml:** يتم تسليم القواعد في `local_rules.xml`، وهو ملف Wazuh القياسي للقواعد المخصصة في المسار `/var/ossec/etc/rules/local_rules.xml`. إذا كنت تفضل الاحتفاظ بقواعد الكشف لديك منظمة حسب CVE، يمكنك نشر المحتوى كملف مستقل (مثل `cve-2026-43284_rules.xml`) في نفس الدليل. كلا الأسلوبين يعملان بشكل متساوٍ.
---
## بنية الكشف
طبقتان مستقلتان - لا تعتمد أي منهما على إصدار النواة أو حالة التصحيح.
### الطبقة 1 - الكشف السلوكي (auditd + Wazuh)
**ملاحظة مهمة حول uid مقابل auid:** عملية الطفل لمتغير ESP تستدعي `unshare(CLONE_NEWUSER)` وتعرّف نفسها بأنها `uid=0` داخل مساحة اسم المستخدم الجديدة. يقوم نظام التدقيق الفرعي في Linux بتسجيل uid المحلي لمساحة الاسم في أحداث SYSCALL، مما يعني أن عوامل التصفية `-F uid!=0` لا تلتقط أحداث `vmsplice` و`splice` من عملية الطفل الخاصة بالاستغلال. يتم تعيين `auid` (معرّف التدقيق / معرّف تسجيل الدخول) وقت تسجيل الدخول ولا يتغير أبدًا مع إعادة تعيين مساحة الاسم. تستخدم قواعد المستشعر الخاصة بـ `vmsplice` و`splice` التعبير `-F auid>=1000` لالتقاط مستخدم تسجيل الدخول الحقيقي بشكل صحيح بغض النظر عما يفعله الاستغلال داخل مساحة الاسم.
**قواعد مستشعر Auditd** (`auditd/cve-dirty-frag.rules`):```
-a always,exit -F arch=b64 -S vmsplice -F auid>=1000 -F auid!=-1 -k dirty_frag_vmsplice
-a always,exit -F arch=b32 -S vmsplice -F auid>=1000 -F auid!=-1 -k dirty_frag_vmsplice
-a always,exit -F arch=b64 -S splice -F auid>=1000 -F auid!=-1 -k dirty_frag_splice
-a always,exit -F arch=b32 -S splice -F auid>=1000 -F auid!=-1 -k dirty_frag_splice
-a always,exit -F arch=b64 -S unshare -F uid!=0 -k dirty_frag_ns_escape
-a always,exit -F arch=b64 -S add_key -F uid!=0 -k dirty_frag_add_key
-a always,exit -F arch=b64 -S socket -F a0=0x23 -F uid!=0 -k dirty_frag_rxrpc_socket
-w /usr/bin/kmod -p x -k dirty_frag_modload
-a always,exit -F arch=b64 -S execve -F exe=/usr/bin/su -F auid>=1000 -F auid!=-1 -k dirty_frag_execve_su
فحوصات تكوين آلية عبر sca/cve-dirty-frag.yml. تُجرى كل 12 ساعة على جميع الوكلاء المسجّلين. لا يلزم فحص إصدار النواة.
ملاحظة هندسية: يتم تفعيل قاعدتي السلسلة (200007/200008) عند وصول إشارتين من نفس العملية خلال 120 ثانية.
vmspliceمتبوعًا بـspliceمن نفس pid هو التسلسل الأساسي لزرع الأنبوب في كلا المتغيرين. مقبس AF_RXRPC متبوعًا بـspliceمن نفس pid خاص بمسار RxRPC. تم التحقق من كلا السلسلتين عبرwazuh-logtestبنجاح 9/9.
القواعد 200000-200008 منشورة وفعّالة. وسوم الامتثال: PCI_DSS، HIPAA، GDPR، NIST_800_53، MITRE ATT&CK. تصل القاعدتان 200007 و200008 إلى المستوى 15 (حرج) عند اكتشاف السلسلة المترابطة.
apt install auditd audispd-plugins -y systemctl enable --now auditd auditctl -s | grep enabled
yum install audit -y systemctl enable --now auditd
zypper install audit -y systemctl enable --now auditd
### الخطوة 2 - نشر قواعد استشعار auditd```bash
cp auditd/cve-dirty-frag.rules /etc/audit/rules.d/
augenrules --load
auditctl -l | grep dirty_frag
الناتج المتوقع (تم تحميل 9 قواعد):``` -a always,exit -F arch=b64 -S vmsplice -F auid>=1000 -F auid!=-1 -F key=dirty_frag_vmsplice -a always,exit -F arch=b32 -S vmsplice -F auid>=1000 -F auid!=-1 -F key=dirty_frag_vmsplice -a always,exit -F arch=b64 -S splice -F auid>=1000 -F auid!=-1 -F key=dirty_frag_splice -a always,exit -F arch=b32 -S splice -F auid>=1000 -F auid!=-1 -F key=dirty_frag_splice -a always,exit -F arch=b64 -S unshare -F uid!=0 -F key=dirty_frag_ns_escape -a always,exit -F arch=b64 -S add_key -F uid!=0 -F key=dirty_frag_add_key -a always,exit -F arch=b64 -S socket -F a0=0x23 -F uid!=0 -F key=dirty_frag_rxrpc_socket -w /usr/bin/kmod -p x -k dirty_frag_modload -a always,exit -F arch=b64 -S execve -F exe=/usr/bin/su -F auid>=1000 -F auid!=-1 -F key=dirty_frag_execve_su
### الخطوة 3 - نشر قواعد كشف Wazuh
ألحق محتوى `rules/local_rules.xml` بملفك الموجود `/var/ossec/etc/rules/local_rules.xml`، أو انشره كملف مستقل إذا كنت تفضل إبقاء القواعد منظمة حسب CVE:```bash
# Option A - append to local_rules.xml (recommended)
cat rules/local_rules.xml >> /var/ossec/etc/rules/local_rules.xml
# Option B - standalone file
cp rules/local_rules.xml /var/ossec/etc/rules/cve-2026-43284_rules.xml
I don't see any content in the INPUT section — it appears to be empty. There is no text to translate. Please provide the actual chunk content so I can translate it from English to Arabic following the specified rules.```bash
/var/ossec/bin/wazuh-analysisd -t 2>&1 | tail -5
systemctl restart wazuh-manager
### الخطوة 4 - نشر سياسة SCA```bash
# On the Wazuh manager - distribute to all agents via shared group
cp sca/cve-dirty-frag.yml /var/ossec/etc/shared/default/
chown root:wazuh /var/ossec/etc/shared/default/cve-dirty-frag.yml
chmod 660 /var/ossec/etc/shared/default/cve-dirty-frag.yml
أضف إلى تكوين مجموعة الوكيل (/var/ossec/etc/shared/default/agent.conf):```xml
<agent_config>
/var/ossec/etc/shared/cve-dirty-frag.yml
</agent_config>
> **مطلوب:** يجب تمكين تنفيذ الأوامر عن بُعد على كل وكيل لكي تعمل فحوصات `c:lsmod` و`c:systemctl`:
>
> ```bash
> echo "sca.remote_commands=1" >> /var/ossec/etc/local_internal_options.conf
> systemctl restart wazuh-agent
> ``````bash
systemctl restart wazuh-manager
تأكد من أن وكيل Wazuh يستوعب سجل auditd. أضف داخل <ossec_config> في /var/ossec/etc/ossec.conf على كل مضيف مُراقَب، أو وزّعه عبر agent.conf:```xml
<log_format>audit</log_format>
/var/log/audit/audit.log
---
## التحقق
### wazuh-logtest - جميع القواعد التسع```bash
# SIGNAL 1 - vmsplice (rule 200000)
echo 'type=SYSCALL msg=audit(1778261582.230:1155): arch=c000003e syscall=316 success=yes exit=8 a0=3 a1=7fff00000000 a2=1 a3=0 items=0 ppid=1000 pid=93321 auid=1000 uid=1000 gid=1000 euid=1000 suid=1000 fsuid=1000 egid=1000 sgid=1000 fsgid=1000 tty=pts0 ses=58 comm="exp" exe="/home/kr/exp" subj=unconfined key="dirty_frag_vmsplice"' | /var/ossec/bin/wazuh-logtest 2>&1 | grep -E "rule|level|200"
# SIGNAL 7 - CHAIN ESP (rules 200000 + 200007, same pid)
printf 'type=SYSCALL msg=audit(1777570010.000:200): arch=c000003e syscall=316 success=yes exit=8 a0=3 a1=7fff00000000 a2=1 a3=0 items=0 ppid=1000 pid=55001 auid=1000 uid=1000 gid=1000 euid=1000 suid=1000 fsuid=1000 egid=1000 sgid=1000 fsgid=1000 tty=pts0 ses=58 comm="exp" exe="/home/kr/exp" key="dirty_frag_vmsplice"\ntype=SYSCALL msg=audit(1777570011.000:201): arch=c000003e syscall=275 success=yes exit=4 a0=4 a1=5 a2=6 a3=0 items=0 ppid=1000 pid=55001 auid=1000 uid=1000 gid=1000 euid=1000 suid=1000 fsuid=1000 egid=1000 sgid=1000 fsgid=1000 tty=pts0 ses=58 comm="exp" exe="/home/kr/exp" key="dirty_frag_splice"\n' | /var/ossec/bin/wazuh-logtest 2>&1 | grep -E "rule|level|200"
المتوقع لاختبار السلسلة:``` id: '200000' level: '10' <- vmsplice signal id: '200007' level: '15' <- CHAIN ESP confirmed - IMMEDIATE INVESTIGATION REQUIRED
### تحقق من أن auditd التقط الأحداث بعد تشغيل الاستغلال```bash
ausearch -k dirty_frag_vmsplice --start today 2>/dev/null | grep "exe=" | head -5
ausearch -k dirty_frag_ns_escape --start today 2>/dev/null | grep "exe=" | head -5
ausearch -k dirty_frag_execve_su --start today 2>/dev/null | grep "EUID=" | head -5
grep -E "200002|200005|200006" /var/ossec/logs/alerts/alerts.log | tail -10
نتيجة SCA المتوقعة (نظام أساسي بدون نشر مستشعر أو auditd): **50%** (3 ناجحة / 3 فاشلة).
---
## أدلة التحقق من الإنتاج
### تنفيذ الاستغلال - الوكيل wazuh5beta (Ubuntu 24.04.2 LTS kernel 6.8.0-111-generic)```
kr@wazuh5beta:~$ ./exp
root@wazuh5beta:~# date ; uname -a ; id ; whoami
Sat May 9 04:59:08 AM UTC 2026
Linux wazuh5beta 6.8.0-111-generic #111-Ubuntu SMP PREEMPT_DYNAMIC Sat Apr 11 23:16:02 UTC 2026 x86_64
uid=0(root) gid=0(root) groups=0(root)
root
المستخدم kr (uid=1000) بدون صلاحيات نفّذ الثنائي PoC وحصل على شل جذر (uid=0). التقط Wazuh ذلك وأطلق تنبيهًا في الوقت الفعلي.
| القاعدة | النتائج | الوصف |
|---|---|---|
| 200002 | مؤكَّدة | unshare(CLONE_NEWUSER) - AppArmor AUDIT - محاولة ESP تم التقاطها |
| 200005 | مؤكَّدة | تنفيذ kmod/modprobe - تحميل وحدات esp4/esp6/rxrpc |
| 200006 | مؤكَّدة |
السياق: تم تنفيذ هذا التشغيل قبل نشر قواعد مستشعر auditd الكاملة. أُطلقت القواعد 200002 و200005 و200006 عبر تغطية auditd الأساسية. تتطلب قاعدة السلسلة الكاملة (200007) تفعيل ملف المستشعر
cve-dirty-frag.rules- انظر تشغيل التحقق الكامل أدناه.
أُطلقت القاعدة 200007 بعد نشر قواعد مستشعر auditd الكاملة (cve-dirty-frag.rules). ربطت السلسلة بين vmsplice() وsplice() من pid=5670 (exe=/home/kr/exp) خلال نافذة الـ 120 ثانية. هذه هي الإشارة الأعلى ثقة في مجموعة الكشف.
تمثل الدرجة 50% نظامًا أساسيًا نظيفًا مع غياب الوحدات المعرضة للثغرات (غير محمَّلة) ولكن بدون نشر حزمة الكشف والتحصين. هذه هي نقطة البداية المتوقعة لنظام لم يطبّق بعد خطوات المعالجة في هذا المستودع.
wazuh-analysisd -t: رمز الخروج 0 - صفر تحذيرات - تم تحميل جميع القواعد الـ 9.
يأتي Ubuntu 24.04 مع الإعداد apparmor_restrict_unprivileged_userns=1 افتراضيًا (kernel 6.1+). يقيّد هذا الإعداد unshare(CLONE_NEWUSER) للعمليات غير المميزة، مما يخفف جزئيًا من متغير ESP (CVE-2026-43284). يسجّل kernel حدث AppArmor AUDIT للمحاولة، وهو ما يطلق القاعدة 200002 في مختبرنا.
يلجأ الثنائي الاستغلالي تلقائيًا إلى متغير RxRPC (CVE-2026-43500) عند فشل مسار ESP. لا يتطلب متغير RxRPC CLONE_NEWUSER ويتجاوز هذا القيد.```bash
cat /proc/sys/kernel/apparmor_restrict_unprivileged_userns
القواعد 200000/200001 (vmsplice/splice) تظل نشطة وذات صلة بـ:
- Ubuntu 22.04 والإصدارات الأقدم
- Debian 11/12
- RHEL 8/9
- أي نواة مع `apparmor_restrict_unprivileged_userns=0`
تم التحقق من التغطية الكاملة للقواعد 9/9 عبر `wazuh-logtest` على Wazuh 4.14.4.
---
## المعالجة
### التخفيف الفوري (قبل تصحيح النواة)
**بالنسبة لمتغير RxRPC (CVE-2026-43500):**```bash
echo 'install rxrpc /bin/false' >> /etc/modprobe.d/dirty-frag.conf
rmmod rxrpc 2>/dev/null || true
آمن على جميع الأنظمة غير القائمة على AFS. لا يؤثر على IPsec أو kTLS أو SSH أو مكدس الشبكة العام.
بالنسبة لمتغير ESP (CVE-2026-43284) - فقط في حال عدم وجود أنفاق IPsec قيد الاستخدام:```bash echo 'install esp4 /bin/false' >> /etc/modprobe.d/dirty-frag.conf echo 'install esp6 /bin/false' >> /etc/modprobe.d/dirty-frag.conf rmmod esp4 esp6 2>/dev/null || true
> **تحذير:** إدراج `esp4`/`esp6` في القائمة السوداء يكسر أنفاق IPsec الخاصة بـ strongSwan/Libreswan. لا تطبّق هذا الإجراء على المضيفات التي تشغّل اتصالات IPsec نشطة.
### الإصلاح الدائم
طبّق commit النواة `f4c50a4034e6` عبر تحديث نواة توزيعتك.```bash
# Ubuntu / Debian
apt update && apt upgrade linux-generic
# RHEL / Amazon Linux
dnf update kernel
# SUSE
zypper update kernel-default
كلتا الثغرتين تستغلان نفس نقطة استقبال فك التشفير authencesn في نواة Linux لكتابة بايتات يتحكم فيها المهاجم إلى ذاكرة التخزين المؤقت للصفحات. الفرق يكمن في طريقة الوصول إلى هذه النقطة.
يمكن لمجموعتي القواعد العمل معًا بأمان على نفس مدير Wazuh. مساحات أسماء مفاتيح auditd منفصلة ولا توجد تعارضات في معرّفات القواعد.
| التاريخ | الحدث |
|---|---|
| 2026-04-29 | إفصاح عام عن Copy Fail (CVE-2026-31431) |
| 2026-05-07 | إفصاح عام عن Dirty Frag بواسطة V4bel - نُشر إثبات المفهوم (PoC) |
| 2026-05-08 | اكتمل مختبر الكشف - تم التحقق من قواعد Wazuh 4.14.4 |
| 2026-05-08 | نُشر المخرَج المخصص للمجتمع |
تم التحقق من قواعد الكشف وإعداد مستشعر auditd وسياسة SCA على Wazuh 4.14.4، Ubuntu 24.04.2 LTS (kernel 6.8.0-111-generic).
Kislley Rodrigues (m0us3r) سفير Wazuh | هندسة الكشف | الفريق الأزرق
تم تطوير هذا المشروع كجزء من برنامج سفراء Wazuh.
Wazuh هي منصة أمنية مجانية ومفتوحة المصدر توفر حماية موحدة من XDR وSIEM. تعرف على المزيد على wazuh.com.
| المورد | الرابط |
|---|
| PoC - dirtyfrag (exp.c) | https://github.com/V4bel/dirtyfrag |
| CVE-2026-43284 | https://github.com/V4bel/dirtyfrag |
| CVE-2026-43500 | https://github.com/V4bel/dirtyfrag |
| إصلاح النواة - commit f4c50a4034e6 | https://github.com/torvalds/linux/commit/f4c50a4034e6 |
| مرجع التخفيف - CloudLinux | https://blog.cloudlinux.com/dirty-frag-mitigation-and-kernel-update |
| ذو صلة - Copy Fail (CVE-2026-31431) | https://github.com/mym0us3r/COPY-FAIL-Detection-with-Wazuh-4.14.4 |
| MITRE ATT&CK T1068 | https://attack.mitre.org/techniques/T1068/ |
| التوزيعة | النواة | AppArmor userns | البديل النشط | السبب | الحالة |
|---|
| Wazuh Server - Ubuntu 24.04.2 LTS | 6.8.0-111-generic | مقيد (افتراضي) | RxRPC | AppArmor يحجب ESP، rxrpc.ko محمّل افتراضيًا | عرضة للخطر |
| Wazuh Beta 5 - Ubuntu 24.04.2 LTS | 6.8.0-111-generic | مقيد (افتراضي) | RxRPC | AppArmor يحجب ESP، rxrpc.ko محمّل افتراضيًا | عرضة للخطر |
| التوزيعة | النواة | AppArmor userns | البديل النشط | السبب |
|---|
| Ubuntu 24.04.4 | 6.17.0-23-generic | مقيد (افتراضي) | RxRPC | AppArmor يحجب ESP + تم إصلاح ESP في النواة 6.17 |
| RHEL 10.1 | 6.12.0-124.49.1.el10_1.x86_64 | غير مقيد | ESP + RxRPC | لا يوجد تقييد للفضاء الاسمي، النواة أقدم من تصحيح ESP |
| openSUSE Tumbleweed | 7.0.2-1-default | غير مقيد | ESP + RxRPC | لا يوجد تقييد للفضاء الاسمي |
| CentOS Stream 10 | 6.12.0-224.el10.x86_64 | غير مقيد | ESP + RxRPC | لا يوجد تقييد للفضاء الاسمي |
| AlmaLinux 10 | 6.12.0-124.52.3.el10_1.x86_64 | غير مقيد | ESP + RxRPC | لا يوجد تقييد للفضاء الاسمي |
| Fedora 44 | 6.19.14-300.fc44.x86_64 | غير مقيد | ESP + RxRPC | لا يوجد تقييد للفضاء الاسمي |
| القاعدة | الأصل | الإشارة | المفتاح | العمق | المستوى |
|---|
| 80700 | decoded_as=auditd | مرساة auditd (مدمجة في Wazuh) | - | 0 | 0 |
| 200000 | 80700 | vmsplice() - زرع ترويسة البروتوكول | dirty_frag_vmsplice | 1 | 10 |
| 200001 | 80700 | splice() - زرع ذاكرة التخزين المؤقت للصفحات | dirty_frag_splice | 1 | 10 |
| 200002 | 80700 | unshare(CLONE_NEWUSER) - مسار ESP | dirty_frag_ns_escape | 1 | 12 |
| 200003 | 80700 | add_key("rxrpc") - زرع مفتاح RxRPC | dirty_frag_add_key | 1 | 8 |
| 200004 | 80700 | socket(AF_RXRPC) - مشغل RxRPC | dirty_frag_rxrpc_socket | 1 | 10 |
| 200005 | 80700 | تنفيذ kmod/modprobe | dirty_frag_modload | 1 | 12 |
| 200006 | 80700 | execve /usr/bin/su euid=root | dirty_frag_execve_su | 1 | 6 |
| 200007 | 200001 + if_matched=200000 | سلسلة ESP: vmsplice + splice نفس pid/120s | - | 2 | 15 |
| 200008 | 200001 + if_matched=200004 | سلسلة RXRPC: AF_RXRPC + splice نفس pid/120s | - | 2 | 15 |
| execve /usr/bin/su - uid=kr euid=root - LPE مؤكَّد |
| القاعدة | المستوى | المفتاح | الملاحظة |
|---|
| 200002 | 12 | dirty_frag_ns_escape | unshare(CLONE_NEWUSER) - هروب من namespace عبر ESP |
| 200003 | 8 | dirty_frag_add_key | add_key() - زرع مفتاح جلسة RxRPC |
| 200000 | 10 | dirty_frag_vmsplice | vmsplice() - زرع ترويسة البروتوكول |
| 200007 | 15 | dirty_frag_splice | تم اكتشاف سلسلة الاستغلال: vmsplice + splice لنفس pid خلال 120 ثانية - مطلوب تحقيق فوري |
| الفحص | العنوان | النتيجة |
|---|
| 43284001 | وحدة kernel الخاصة بـ esp4 غير محمَّلة | ناجح |
| 43284002 | وحدة kernel الخاصة بـ esp6 غير محمَّلة | ناجح |
| 43284003 | وحدة kernel الخاصة بـ rxrpc غير محمَّلة | ناجح |
| 43284004 | تعطيل esp4/esp6/rxrpc عبر modprobe.d | فاشل |
| 43284005 | auditd نشط ويعمل | فاشل |
| 43284006 | نشر قواعد مستشعر auditd الخاصة بـ CVE-2026-43284 | فاشل |
| Copy Fail (CVE-2026-31431) | Dirty Frag (CVE-2026-43284/43500) |
|---|
| مسار التشغيل | AF_ALG socket + splice عبر algif_aead | vmsplice + splice عبر esp_input أو rxkad |
| الصلاحيات المطلوبة | لا شيء | لا شيء (RxRPC) / مساحة مستخدم (ESP) |
| تداخل التخفيف | حظر algif_aead | حظر rxrpc / esp4 / esp6 |
| التخفيف المتقاطع | حظر algif_aead لا يوقف Dirty Frag | حظر rxrpc لا يوقف Copy Fail |
| كشف FIM | لا | لا |
| مفاتيح auditd | copy_fail_* | dirty_frag_* |
| قواعد Wazuh | 199600-199607 | 200000-200008 |
| معرف الفحص | العنوان | الخطورة |
|---|
| 43284001 | وحدة نواة esp4 غير محمّلة في الذاكرة | عالية |
| 43284002 | وحدة نواة esp6 غير محمّلة في الذاكرة | عالية |
| 43284003 | وحدة نواة rxrpc غير محمّلة في الذاكرة | عالية |
| 43284004 | esp4/esp6/rxrpc معطّلة عبر modprobe.d | عالية |
| 43284005 | auditd نشطة وقيد التشغيل | عالية |
| 43284006 | تم نشر قواعد مستشعر auditd الخاصة بـ CVE-2026-43284 Dirty Frag | عالية |