{"vuid":"VU#980487","idnumber":"980487","name":"Local privilege escalation in Linux Kernel (Dirty Frag)","keywords":null,"overview":"### Overview\r\nA privilege escalation vulnerability, nicknamed \"Dirty Frag,\" has been discovered in the Linux kernel versions 4.10 and later. This vulnerability is a result of chaining together two previously discovered vulnerabilities, xfrm-ESP Page-Cache Write [CVE-2026-43284](https://www.cve.org/CVERecord?id=CVE-2026-43284) and the RxRPC Page-Cache Write [CVE-2026-43500](https://www.cve.org/CVERecord?id=CVE-2026-43500). This vulnerability was publicly disclosed on May 07, 2026.\r\n\r\n### Description\r\nDirty Frag is a Linux kernel vulnerability affecting the IPv4/IPv6 fragmentation and reassembly subsystem. The issue stems from improper handling of overlapping or malformed fragment offsets during the reassembly process. An attacker capable of sending crafted network packets to a vulnerable host can exploit the flaw to trigger memory corruption conditions.\r\n\r\nThe publicly documented proof of concept demonstrates that fragmentation logic can be manipulated such that the kernel processes inconsistent fragment states, enabling a controlled write out-of-bounds scenario. When successfully exploited, this can result in local or remote denial of service (kernel panic) and, depending on configuration and kernel build options, may create a primitive for more advanced memory manipulation.\r\n\r\nThe vulnerability arises from insufficient validation of fragment metadata during reassembly, specifically around:\r\n\r\n* Incorrect or incomplete enforcement of fragment boundary checks\r\n* Acceptance of overlapping fragments in unsafe sequences\r\n* Inadequate cleanup when transitions occur between valid and invalid fragment states\r\n\r\nThe fragment queue logic in affected kernels does not fully verify that fragment offsets, sizes, and overlap conditions remain consistent throughout reassembly. This allows malformed sequences to be processed without proper rejection.\r\n\r\n### Impact\r\nThe primary security concern is potential privilege escalation, similar in nature to the previously disclosed [VU#260001 (\"Copy Fail\")](https://kb.cert.org/vuls/id/260001) vulnerability.\r\n\r\nDepending on system configuration, kernel hardening features, and network exposure, successful exploitation may result in:\r\n\r\n- Local or remote denial of service through kernel panic\r\n- Memory corruption within the Linux networking stack\r\n- Privilege escalation\r\n- Container escape in certain containerized environments\r\n- Additional exploit primitives when chained with other vulnerabilities\r\n\r\n### Solution\r\n\r\n#### Update Linux distribution\r\nUpdate your distribution’s kernel package as soon as vendor patches become available. Most major Linux distributions are expected to release fixes through their standard update channels.\r\n\r\n#### Workarounds (if patching is not immediately possible):\r\n1) Disable at-risk modules (if loaded and loadable):\r\nUse the following command to remove the modules in which the vulnerabilities occur and clear the page cache.\r\n`sh -c \"printf 'install esp4 /bin/false\\ninstall esp6 /bin/false\\ninstall rxrpc /bin/false\\n' > /etc/modprobe.d/dirtyfrag.conf; rmmod esp4 esp6 rxrpc 2>/dev/null; echo 3 > /proc/sys/vm/drop_caches; true\"` \r\n\r\nNote: you can verify if a module is currently being used using `lsmod` and the `Used` field or reviewing `refcnt` data in `/sys/module/<module_name>/refcnt` for e.g., `cat /sys/module/esp4/refcnt`\r\n\r\n2) If affected modules `esp4`, `esp6`, `rxrpc ` are compiled into the kernel (not a dynamic module), the following parameter can be added to grub, systemd-boot, or grubby, depending on your boot configuration:\r\n`initcall_blacklist=esp4,esp6,rxrpc`\r\nThis prevents the module from initializing at boot time. A system reboot is required for this change to take effect.\r\n\r\n#### Mitigation for Containers\r\n\r\nFor containerized environments, where this vulnerability may be leveraged for container escape, consider applying one or more of the following mitigations:\r\n\r\n* Secure computing (seccomp) filtering: Restrict or deny system calls that create sockets using the AF_ALG address family (protocol 38) and AF_RXRPC (protocol 33) .\r\n* AppArmor policies: Use AppArmor to block creation of AF_ALG sockets and AF_RXRPC via the network alg rule.\r\n* eBPF-based enforcement: Deploy BPF-based controls to deny socket creation with address family AF_ALG (38) and AF_RXRPC (33).\r\n \r\n### Acknowledgements\r\nThis vulnerability was disclosed by Hyunwoo Kim. This document was written by Bob Kemerer.","clean_desc":null,"impact":null,"resolution":null,"workarounds":null,"sysaffected":null,"thanks":null,"author":null,"public":["https://github.com/V4bel/dirtyfrag","https://github.com/V4bel/dirtyfrag/blob/master/assets/write-up.md","https://nvd.nist.gov/vuln/detail/CVE-2026-43284","https://www.tenable.com/blog/dirty-frag-cve-2026-43284-cve-2026-43500-frequently-asked-questions-linux-kernel-lpe"],"cveids":["CVE-2026-43284","CVE-2026-43500"],"certadvisory":null,"uscerttechnicalalert":null,"datecreated":"2026-05-20T21:23:46.077156Z","publicdate":"2026-05-20T21:23:45.752600Z","datefirstpublished":"2026-05-20T21:23:46.092345Z","dateupdated":"2026-05-20T21:23:45.752595Z","revision":1,"vrda_d1_directreport":null,"vrda_d1_population":null,"vrda_d1_impact":null,"cam_widelyknown":null,"cam_exploitation":null,"cam_internetinfrastructure":null,"cam_population":null,"cam_impact":null,"cam_easeofexploitation":null,"cam_attackeraccessrequired":null,"cam_scorecurrent":null,"cam_scorecurrentwidelyknown":null,"cam_scorecurrentwidelyknownexploited":null,"ipprotocol":null,"cvss_accessvector":null,"cvss_accesscomplexity":null,"cvss_authentication":null,"cvss_confidentialityimpact":null,"cvss_integrityimpact":null,"cvss_availabilityimpact":null,"cvss_exploitablity":null,"cvss_remediationlevel":null,"cvss_reportconfidence":null,"cvss_collateraldamagepotential":null,"cvss_targetdistribution":null,"cvss_securityrequirementscr":null,"cvss_securityrequirementsir":null,"cvss_securityrequirementsar":null,"cvss_basescore":null,"cvss_basevector":null,"cvss_temporalscore":null,"cvss_environmentalscore":null,"cvss_environmentalvector":null,"metric":null,"vulnote":197}