Sploitus

Exploit for DIRTY-FRAG-Detection-with-Wazuh-4.14.4

kitploit · 2026-08-24

Exploit Code

MARKDOWN405 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-MYM0US3R-DIRTY-FRAG-DETECTION-WITH-WAZUH-4.14.4
# كشف DIRTY FRAG باستخدام Wazuh 4.14.4 - CVE-2026-43284 / CVE-2026-43500

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

![rules](https://img.shields.io/badge/wazuh_rules-9-brightgreen) ![sca](https://img.shields.io/badge/SCA_checks-6-blue) ![status](https://img.shields.io/badge/status-production--validated-success) ![mitre](https://img.shields.io/badge/MITRE-T1068-red) ![cve](https://img.shields.io/badge/CVE-2026--43284-critical) ![cve](https://img.shields.io/badge/CVE-2026--43500-critical)

* * *

## ما هو 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](https://assets.kitploit.com/production/public/readmes/29704/ccbc3f6f6f324631d4f9842ea16c3079a6e50e685626d7e05706d4843a4eca1c.png)

_القواعد 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 نتيجة](https://assets.kitploit.com/production/public/readmes/29704/339df2550c55e9537597dcc566e7081c4fa3e5c111322e29c112d6d9f5c8914f.png)

القاعدة| النتائج| الوصف  
---|---|---  
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](https://assets.kitploit.com/production/public/readmes/29704/f17710d6a7162e404979ad4db6afe3f0739dacbbcec42d59ce17df5df791ed77.png)

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

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

![نظرة عامة على سياسة SCA](https://assets.kitploit.com/production/public/readmes/29704/452e77ba876b73d2891291b317bed14961fbba0e43bfbc971f4fb04172e2bba9.png)

![Discover الخاص بـ SCA](https://assets.kitploit.com/production/public/readmes/29704/37b829919fccada1cb711ca7b9030746076913c3f1cb57464cb83d0ff22456f1.png)

> تمثل الدرجة 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.