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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
DIRTY-FRAG-Detection-with-Wazuh-4.14.4 — قواعد كشف Wazuh 4.14.4 لـ CVE-2026-43284 / CVE-2026-43500 (Dirty Frag) - تصعيد الامتيازات المحلي في لينكس عبر كتابة ذاكرة التخزين المؤقت للصفحات | Kitploit
أدوات/GitHubGitHub/mym0us3r/dirty-frag-detection-with-wazuh-4.14.4
تصعيد الامتيازاتتحليل الثغرات الأمنيةالاستغلالاستخبارات التهديداتكشف التسللالتعلم والتعليمالاستجابة للحوادثاستغلال الملفات الثنائيةمختبرات وتدريب عملي

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
GitHubmym0us3r/dirty-frag-detection-with-wazuh-4.14.4

DIRTY-FRAG-Detection-with-Wazuh-4.14.4

قواعد كشف Wazuh 4.14.4 لـ CVE-2026-43284 / CVE-2026-43500 (Dirty Frag) - تصعيد الامتيازات المحلي في لينكس عبر كتابة ذاكرة التخزين المؤقت للصفحات

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

كشف DIRTY FRAG باستخدام Wazuh 4.14.4 - CVE-2026-43284 / CVE-2026-43500

هندسة الكشف لثغرة Dirty Frag في تصعيد الامتيازات المحلية للنواة - Ubuntu / RHEL / Debian / Amazon Linux

rules sca status mitre cve cve


ما هو Dirty Frag؟

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

root@kitploit:~
**البديل 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


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


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

يكتب 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

root@kitploit:~
الكشف الفعّال الوحيد هو الكشف السلوكي عبر مراقبة استدعاءات النظام على مستوى النواة. يوفر هذا المستودع قواعد 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 يسلّم صفحات ذاكرة التخزين المؤقت للملف الهدف إلى نفس الأنبوب دون نسخ. عندما تعالج النواة المخزن المؤقت المدمج عبر مسار فك التشفير، تكتب البايتات التي يتحكم فيها المهاجم إلى ذاكرة التخزين المؤقت للصفحات في الملف الهدف.


الأنظمة المتأثرة

تم التأكيد بواسطة @m0us3r - مختبر كشف Ubuntu 24.04.2 LTS

تم التأكيد بواسطة المؤلف (github.com/V4bel/dirtyfrag)

جميع نوى لينكس منذ 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)

root@kitploit:~
> **ملاحظة حول 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

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

فحوصات تكوين آلية عبر sca/cve-dirty-frag.yml. تُجرى كل 12 ساعة على جميع الوكلاء المسجّلين. لا يلزم فحص إصدار النواة.

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

ملاحظة هندسية: يتم تفعيل قاعدتي السلسلة (200007/200008) عند وصول إشارتين من نفس العملية خلال 120 ثانية. vmsplice متبوعًا بـ splice من نفس pid هو التسلسل الأساسي لزرع الأنبوب في كلا المتغيرين. مقبس AF_RXRPC متبوعًا بـ splice من نفس pid خاص بمسار RxRPC. تم التحقق من كلا السلسلتين عبر wazuh-logtest بنجاح 9/9.

لوحة معلومات Wazuh - القواعد المنشورة

Wazuh rules 200000-200008

القواعد 200000-200008 منشورة وفعّالة. وسوم الامتثال: PCI_DSS، HIPAA، GDPR، NIST_800_53، MITRE ATT&CK. تصل القاعدتان 200007 و200008 إلى المستوى 15 (حرج) عند اكتشاف السلسلة المترابطة.


النشر

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

Ubuntu / Debian

apt install auditd audispd-plugins -y systemctl enable --now auditd auditctl -s | grep enabled

RHEL / Amazon Linux

yum install audit -y systemctl enable --now auditd

SUSE

zypper install audit -y systemctl enable --now auditd

root@kitploit:~
### الخطوة 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

root@kitploit:~
### الخطوة 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

Validate syntax - must exit 0 with zero warnings

/var/ossec/bin/wazuh-analysisd -t 2>&1 | tail -5

Restart manager

systemctl restart wazuh-manager

root@kitploit:~
### الخطوة 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>

root@kitploit:~
> **مطلوب:** يجب تمكين تنفيذ الأوامر عن بُعد على كل وكيل لكي تعمل فحوصات `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

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

تأكد من أن وكيل Wazuh يستوعب سجل auditd. أضف داخل <ossec_config> في /var/ossec/etc/ossec.conf على كل مضيف مُراقَب، أو وزّعه عبر agent.conf:```xml <log_format>audit</log_format> /var/log/audit/audit.log

root@kitploit:~
---

## التحقق

### 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

root@kitploit:~
### تحقق من أن 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

تحقق من التنبيهات المولدة بواسطة Wazuh```bash

grep -E "200002|200005|200006" /var/ossec/logs/alerts/alerts.log | tail -10

root@kitploit:~
نتيجة 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 ذلك وأطلق تنبيهًا في الوقت الفعلي.

تشغيل التحقق الأولي - 8 مايو 2026 (52 نتيجة)

تنبيهات Discover - 52 نتيجة

القاعدةالنتائجالوصف
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 (15 مايو 2026)

تنبيهات Discover - 13 نتيجة - قاعدة السلسلة 200007

أُطلقت القاعدة 200007 بعد نشر قواعد مستشعر auditd الكاملة (cve-dirty-frag.rules). ربطت السلسلة بين vmsplice() وsplice() من pid=5670 (exe=/home/kr/exp) خلال نافذة الـ 120 ثانية. هذه هي الإشارة الأعلى ثقة في مجموعة الكشف.

سياسة SCA - الدرجة 50% (خط الأساس بدون نشر المستشعر)

نظرة عامة على سياسة SCA

Discover الخاص بـ SCA

تمثل الدرجة 50% نظامًا أساسيًا نظيفًا مع غياب الوحدات المعرضة للثغرات (غير محمَّلة) ولكن بدون نشر حزمة الكشف والتحصين. هذه هي نقطة البداية المتوقعة لنظام لم يطبّق بعد خطوات المعالجة في هذا المستودع.

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


ملاحظة بخصوص Ubuntu 24.04 - AppArmor والاحتياط للمتغير البديل

يأتي 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

Check if your Ubuntu system has this restriction active

cat /proc/sys/kernel/apparmor_restrict_unprivileged_userns

1 = restricted (ESP variant blocked, RxRPC still active)

0 = not restricted (both variants active)

root@kitploit:~
القواعد 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

root@kitploit:~
> **تحذير:** إدراج `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

العلاقة مع Copy Fail (CVE-2026-31431)

كلتا الثغرتين تستغلان نفس نقطة استقبال فك التشفير 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نُشر المخرَج المخصص للمجتمع

ملخص سياسة SCA


تم التحقق من قواعد الكشف وإعداد مستشعر auditd وسياسة SCA على Wazuh 4.14.4، Ubuntu 24.04.2 LTS (kernel 6.8.0-111-generic).


المؤلف

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


شكر وتقدير

  • V4bel لاكتشافه وإفصاحه العام وإثبات المفهوم (PoC) الخاص بـ CVE-2026-43284 / CVE-2026-43500 - https://github.com/V4bel/dirtyfrag
  • فريق Wazuh لمنصة SIEM/XDR مفتوحة المصدر
  • Anthony Faruna وKatia Bukcovac - برنامج سفراء Wazuh، لمراجعة هذا المخرَج الخاص بالكشف وتقديم الملاحظات عليه
  • CloudLinux للمرجع المبكر للتخفيف على https://blog.cloudlinux.com/dirty-frag-mitigation-and-kernel-update

Wazuh

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

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

تنزيل الأداة
الموردالرابط
PoC - dirtyfrag (exp.c)https://github.com/V4bel/dirtyfrag
CVE-2026-43284https://github.com/V4bel/dirtyfrag
CVE-2026-43500https://github.com/V4bel/dirtyfrag
إصلاح النواة - commit f4c50a4034e6https://github.com/torvalds/linux/commit/f4c50a4034e6
مرجع التخفيف - CloudLinuxhttps://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 T1068https://attack.mitre.org/techniques/T1068/
التوزيعةالنواةAppArmor usernsالبديل النشطالسببالحالة
Wazuh Server - Ubuntu 24.04.2 LTS6.8.0-111-genericمقيد (افتراضي)RxRPCAppArmor يحجب ESP، rxrpc.ko محمّل افتراضيًاعرضة للخطر
Wazuh Beta 5 - Ubuntu 24.04.2 LTS6.8.0-111-genericمقيد (افتراضي)RxRPCAppArmor يحجب ESP، rxrpc.ko محمّل افتراضيًاعرضة للخطر
التوزيعةالنواةAppArmor usernsالبديل النشطالسبب
Ubuntu 24.04.46.17.0-23-genericمقيد (افتراضي)RxRPCAppArmor يحجب ESP + تم إصلاح ESP في النواة 6.17
RHEL 10.16.12.0-124.49.1.el10_1.x86_64غير مقيدESP + RxRPCلا يوجد تقييد للفضاء الاسمي، النواة أقدم من تصحيح ESP
openSUSE Tumbleweed7.0.2-1-defaultغير مقيدESP + RxRPCلا يوجد تقييد للفضاء الاسمي
CentOS Stream 106.12.0-224.el10.x86_64غير مقيدESP + RxRPCلا يوجد تقييد للفضاء الاسمي
AlmaLinux 106.12.0-124.52.3.el10_1.x86_64غير مقيدESP + RxRPCلا يوجد تقييد للفضاء الاسمي
Fedora 446.19.14-300.fc44.x86_64غير مقيدESP + RxRPCلا يوجد تقييد للفضاء الاسمي
القاعدةالأصلالإشارةالمفتاحالعمقالمستوى
80700decoded_as=auditdمرساة auditd (مدمجة في Wazuh)-00
20000080700vmsplice() - زرع ترويسة البروتوكولdirty_frag_vmsplice110
20000180700splice() - زرع ذاكرة التخزين المؤقت للصفحاتdirty_frag_splice110
20000280700unshare(CLONE_NEWUSER) - مسار ESPdirty_frag_ns_escape112
20000380700add_key("rxrpc") - زرع مفتاح RxRPCdirty_frag_add_key18
20000480700socket(AF_RXRPC) - مشغل RxRPCdirty_frag_rxrpc_socket110
20000580700تنفيذ kmod/modprobedirty_frag_modload112
20000680700execve /usr/bin/su euid=rootdirty_frag_execve_su16
200007200001 + if_matched=200000سلسلة ESP: vmsplice + splice نفس pid/120s-215
200008200001 + if_matched=200004سلسلة RXRPC: AF_RXRPC + splice نفس pid/120s-215
execve /usr/bin/su - uid=kr euid=root - LPE مؤكَّد
القاعدةالمستوىالمفتاحالملاحظة
20000212dirty_frag_ns_escapeunshare(CLONE_NEWUSER) - هروب من namespace عبر ESP
2000038dirty_frag_add_keyadd_key() - زرع مفتاح جلسة RxRPC
20000010dirty_frag_vmsplicevmsplice() - زرع ترويسة البروتوكول
20000715dirty_frag_spliceتم اكتشاف سلسلة الاستغلال: vmsplice + splice لنفس pid خلال 120 ثانية - مطلوب تحقيق فوري
الفحصالعنوانالنتيجة
43284001وحدة kernel الخاصة بـ esp4 غير محمَّلةناجح
43284002وحدة kernel الخاصة بـ esp6 غير محمَّلةناجح
43284003وحدة kernel الخاصة بـ rxrpc غير محمَّلةناجح
43284004تعطيل esp4/esp6/rxrpc عبر modprobe.dفاشل
43284005auditd نشط ويعملفاشل
43284006نشر قواعد مستشعر auditd الخاصة بـ CVE-2026-43284فاشل
Copy Fail (CVE-2026-31431)Dirty Frag (CVE-2026-43284/43500)
مسار التشغيلAF_ALG socket + splice عبر algif_aeadvmsplice + splice عبر esp_input أو rxkad
الصلاحيات المطلوبةلا شيءلا شيء (RxRPC) / مساحة مستخدم (ESP)
تداخل التخفيفحظر algif_aeadحظر rxrpc / esp4 / esp6
التخفيف المتقاطعحظر algif_aead لا يوقف Dirty Fragحظر rxrpc لا يوقف Copy Fail
كشف FIMلالا
مفاتيح auditdcopy_fail_*dirty_frag_*
قواعد Wazuh199600-199607200000-200008
معرف الفحصالعنوانالخطورة
43284001وحدة نواة esp4 غير محمّلة في الذاكرةعالية
43284002وحدة نواة esp6 غير محمّلة في الذاكرةعالية
43284003وحدة نواة rxrpc غير محمّلة في الذاكرةعالية
43284004esp4/esp6/rxrpc معطّلة عبر modprobe.dعالية
43284005auditd نشطة وقيد التشغيلعالية
43284006تم نشر قواعد مستشعر auditd الخاصة بـ CVE-2026-43284 Dirty Fragعالية