{"id":417843,"date":"2026-05-09T05:06:15","date_gmt":"2026-05-09T05:06:15","guid":{"rendered":"https:\/\/www.europesays.com\/pl\/417843\/"},"modified":"2026-05-09T05:06:15","modified_gmt":"2026-05-09T05:06:15","slug":"dirty-frag-kolejna-metoda-na-roota-pod-linuxem","status":"publish","type":"post","link":"https:\/\/www.europesays.com\/pl\/417843\/","title":{"rendered":"Dirty Frag &#8211; kolejna metoda na root\u2019a pod Linuxem"},"content":{"rendered":"<p>Pami\u0119tacie <a href=\"https:\/\/sekurak.pl\/byla-podatnosc-dirty-cow-czas-na-dirty-pipe-prosta-eskalacja-uprawnien-w-linuksie-do-konta-root-cve-2022-0847\/\" rel=\"nofollow noopener\" target=\"_blank\">Dirty Pipe<\/a>? \u0141atali\u015bcie ostatnio\u00a0 <a href=\"https:\/\/sekurak.pl\/copy-fail-cve-2026-31431-powazna-podatnosc-umozliwiajaca-eskalacje-uprawnien-do-roota-latajcie-sie\/\" rel=\"nofollow noopener\" target=\"_blank\">Copy Fail<\/a>? Pasy zapi\u0119te? Nie? To niedobrze, bo kilka godzin temu pojawi\u0142a si\u0119 nowa podatno\u015b\u0107 okre\u015blona mianem Dirty Frag. W ramce poni\u017cej znajduje si\u0119 tymczasowe rozwi\u0105zanie maj\u0105ce na celu wy\u0142\u0105czenie niebezpiecznych modu\u0142\u00f3w. Jest to luka klasy LPE (local privilege escalation), kt\u00f3ra pozwala na podniesienie uprawnie\u0144 lokalnego u\u017cytkownika do root\u2019a. Tak samo jak w przypadku poprzednik\u00f3w, podatno\u015b\u0107 nie wymaga wygrania wy\u015bcigu (ang. race condition), a to powoduje, \u017ce skuteczno\u015b\u0107 exploitacji jest ca\u0142kiem wysoka. Konstrukcja tego typu atak\u00f3w sprawia, \u017ce prawdopodobie\u0144stwo wyst\u0105pienia kernel panic (lub \u017cartobliwie \u2013 pop\u0142ochu j\u0105dra) w przypadku niepowodzenia jest bardzo niskie. Dla atakuj\u0105cych \u2013 bardzo dobrze; dla obro\u0144c\u00f3w \u2013 jest problem, bo patche nie trafi\u0142y jeszcze do wszystkich podatnych dystrybucji.\u00a0<\/p>\n<p>TLDR:<\/p>\n<ul class=\"wp-block-list\">\n<li>Krytyczne LPE (Local Privilege Escalation): Dirty Frag to luka pozwalaj\u0105ca na uzyskanie uprawnie\u0144 roota w wi\u0119kszo\u015bci wsp\u00f3\u0142czesnych dystrybucji Linuksa.<\/li>\n<li>Zatrucie Page Cache: Exploit omija mechanizm Copy-on-Write (COW), \u0142\u0105cz\u0105c funkcj\u0119 splice() (zero-copy) z kryptografi\u0105 in-place (modu\u0142y ESP lub RxRPC), co pozwala na nadpisanie plik\u00f3w systemowych (np. \/usr\/bin\/su) bezpo\u015brednio w pami\u0119ci RAM.<\/li>\n<li>Z powodu przedwczesnego wycieku exploita, oficjalne \u0142atki dopiero trafiaj\u0105 do repozytori\u00f3w. Dora\u017anym rozwi\u0105zaniem jest natychmiastowe zablokowanie modu\u0142\u00f3w j\u0105dra: esp4, esp6 oraz rxrpc<\/li>\n<\/ul>\n<p>W <a href=\"https:\/\/github.com\/V4bel\/dirtyfrag\/tree\/master\" rel=\"nofollow noopener\" target=\"_blank\">opublikowanym<\/a> na portalu GitHub opisie, zamieszczono informacj\u0119, \u017ce istnienie podatno\u015bci wykazano w wi\u0119kszo\u015bci nowoczesnych dystrybucji. Przedstawiony PoC zosta\u0142 z sukcesem przetestowany mi\u0119dzy innymi na poni\u017cszych dystrybucjach:<\/p>\n<ul class=\"wp-block-list\">\n<li>Ubuntu 24.04.4: 6.17.0-23-generic<\/li>\n<li>RHEL 10.1: 6.12.0-124.49.1.el10_1.x86_64<\/li>\n<li>openSUSE Tumbleweed: 7.0.2-1-default<\/li>\n<li>CentOS Stream 10: 6.12.0-224.el10.x86_64<\/li>\n<li>AlmaLinux 10: 6.12.0-124.52.3.el10_1.x86_64<\/li>\n<li>Fedora 44: 6.19.14-300.fc44.x86_64<\/li>\n<\/ul>\n<p>Z\u0142\u0105 wiadomo\u015bci\u0105 (mamy pewne teorie na ten temat) jest fakt, \u017ce responsible disclosure nie \u017cyje i nic nie wskazuje na to, \u017ce sytuacja mia\u0142aby si\u0119 poprawi\u0107. Pi\u0119ciodniowe embargo informacyjne dotycz\u0105ce tej podatno\u015bci zosta\u0142o z\u0142amane niemal natychmiast po zmergowaniu patcha do netdev, dlatego zgodnie z zasadami ustalonymi z osobami odpowiedzialnymi za bezpiecze\u0144stwo kernela, <a href=\"https:\/\/x.com\/v4bel\" rel=\"nofollow\">znalazca<\/a> opublikowa\u0142 pe\u0142en <a href=\"https:\/\/github.com\/V4bel\/dirtyfrag\/blob\/master\/assets\/write-up.md\" rel=\"nofollow noopener\" target=\"_blank\">writeup<\/a>.\u00a0<\/p>\n<tr>\n<td>WA\u017bNE \u2013 zastosowanie mitygacji popsuje obs\u0142ug\u0119 IPSec w kernelu<br \/>Poniewa\u017c potrzebne \u0142atki nie trafi\u0142y jeszcze do dystrybucji istnieje tymczasowy workaround, kt\u00f3ry nale\u017cy traktowa\u0107 jako rozwi\u0105zanie dora\u017ane. Po opublikowaniu odpowiednich \u0142atek, nale\u017cy zastosowa\u0107 je bezzw\u0142ocznie.\u00a0<br \/>Workaround polega na wy\u0142\u0105czeniu modu\u0142\u00f3w j\u0105dra, w kt\u00f3rych wyst\u0119puje ta konkretna podatno\u015b\u0107:<\/p>\n<p>sh -c &#8222;printf 'install esp4 \/bin\/false\\ninstall esp6 \/bin\/false\\ninstall rxrpc \/bin\/false\\n&#8217; &gt; \/etc\/modprobe.d\/dirtyfrag.conf; rmmod esp4 esp6 rxrpc 2&gt;\/dev\/null; true&#8221;<\/p>\n<\/td>\n<\/tr>\n<p>Z grubsza podatno\u015b\u0107 wynika z tego, \u017ce atakuj\u0105cy mo\u017ce zmusi\u0107 kernel do modyfikacji plik\u00f3w, do kt\u00f3rych powinien mie\u0107 tylko dost\u0119p read-only. Exploit nadu\u017cywa mechanizmu optymalizacyjnego zero-copy, kt\u00f3ry pozwala unikn\u0105\u0107 kopiowania du\u017cych struktur danych przekazuj\u0105c jedynie referencj\u0119 do strony pami\u0119ci. U\u017cytkownik otwiera plik, do kt\u00f3rego ma dost\u0119p tylko do odczytu (np. \/usr\/bin\/su \u2013 ta sama binarka, kt\u00f3ra zosta\u0142a wykorzystana przez exploit Copy Fail). Nast\u0119pnie wykorzystuje mechanizmy sieciowe Linuxa oraz funkcj\u0119 <a href=\"https:\/\/docs.kernel.org\/filesystems\/splice.html\" rel=\"nofollow noopener\" target=\"_blank\">splice()<\/a> i interfejs sieciowy (lokalna p\u0119tla zwrotna), aby wstawi\u0107 bezpo\u015bredni\u0105 referencj\u0119 do za\u0142adowanej ju\u017c w pami\u0119ci podr\u0119cznej (page cache) strony tego pliku prosto do struktury pakietu sieciowego \u2013 omijaj\u0105c de facto mechanizm Copy on Write. Przez mechanizm wykonania operacji kryptograficznych, podczas przetwarzania pakietu, mo\u017cliwa jest modyfikacja in place bufora frag struktury <a href=\"https:\/\/docs.kernel.org\/networking\/skbuff.html\" rel=\"nofollow noopener\" target=\"_blank\">sk_buff<\/a> (wykorzystuj\u0105c ESP lub RxRPC). A poniewa\u017c referencja wskazuje na kopi\u0119 w cache, tzn. ten bufor jest wsp\u00f3\u0142dzielonym wska\u017anikiem na page cache, to kernel modyfikuje niechc\u0105cy kopi\u0119 \u201czabezpieczonej\u201d binarki w pami\u0119ci podr\u0119cznej. Wykonuj\u0105c t\u0119 operacj\u0119 wiele razy, atakuj\u0105cy de facto sukcesywnie podmienia binaria znajduj\u0105ce si\u0119 w pami\u0119ci podr\u0119cznej. W momencie wykonania wskazanej binarki przez system lub u\u017cytkownika, kernel wykonuje kod podstawiony przez atakuj\u0105cego.\u00a0<\/p>\n<p><img fetchpriority=\"high\" decoding=\"async\" width=\"1280\" height=\"720\" src=\"https:\/\/www.europesays.com\/pl\/wp-content\/uploads\/2026\/05\/demo.gif\" alt=\"\" class=\"wp-image-56063\"\/>GIF prezentuj\u0105cy dzia\u0142anie PoC na wielu nowych dystrybucjach (<a href=\"https:\/\/github.com\/V4bel\/dirtyfrag\/tree\/master\" rel=\"nofollow noopener\" target=\"_blank\">\u017ar\u00f3d\u0142o<\/a>)<\/p>\n<p>Jak dosz\u0142o do z\u0142amania embarga? Standardowo, w momencie kiedy poprawka trafia do publicznego upstreamu, badacze bezpiecze\u0144stwa (a tak\u017ce z\u0142o\u015bliwi aktorzy) dokonuj\u0105 por\u00f3wnania r\u00f3\u017cnic w kodzie i na podstawie poprawki wnioskuj\u0105 jaki jest wektor ataku i ew. przygotowania exploita na luk\u0119 n-day (czyli tak\u0105, o kt\u00f3rej dostawca oprogramowania wie, ale jeszcze nie wdro\u017cy\u0142 albo jest na etapie wdra\u017cania \u0142atek). U\u017cytkownik <a href=\"https:\/\/www.openwall.com\/lists\/oss-security\/2026\/05\/07\/12\" rel=\"nofollow noopener\" target=\"_blank\">_SiCk<\/a> twierdzi, \u017ce publikacja jego repozytorium, nazwanego <a href=\"https:\/\/github.com\/0xdeadbeefnetwork\/Copy_Fail2-Electric_Boogaloo\" rel=\"nofollow noopener\" target=\"_blank\">Copy Fail2: Electric Boogaloo<\/a>, nie by\u0142o celowym i z\u0142o\u015bliwym dzia\u0142aniem, maj\u0105cym wyprzedzi\u0107 publikacj\u0119 patcha, a on sam nie wiedzia\u0142 o istnieniu umowy dotycz\u0105cej op\u00f3\u017anienia publikacji informacji o explocie.\u00a0<\/p>\n<p>Pierwszy patch, gotowy do zainstalowania pojawi\u0142 si\u0119 w repozytorium testowym <a href=\"https:\/\/almalinux.org\/blog\/2026-05-01-cve-2026-31431-copy-fail\/\" rel=\"nofollow noopener\" target=\"_blank\">dystrybucji AlmaLinux<\/a>.<\/p>\n<p>Dlaczego obserwujemy wysyp podatno\u015bci typu LPE, akurat teraz? Odpowied\u017a jest prosta. Badacze zapoznali si\u0119 z mechanizmami, kt\u00f3re doprowadzi\u0142y do powstania podatno\u015bci takich jak Copy Fail i staraj\u0105 si\u0119 prze\u0142o\u017cy\u0107 podobny spos\u00f3b my\u015blenia na inne elementy kernela. Oznacza to, \u017ce poszukuj\u0105 podobnych wzorc\u00f3w w kodzie, aby wykorzystuj\u0105c podobne elementy (tzw. primitives), osi\u0105gn\u0105\u0107 zbli\u017cony efekt. Wed\u0142ug nas mo\u017cemy zobaczy\u0107 kilka podobnych podatno\u015bci w najbli\u017cszej przysz\u0142o\u015bci. Nale\u017cy pami\u0119ta\u0107, \u017ce LLMy, mimo swoich wad, bardzo dobrze radz\u0105 sobie w\u0142a\u015bnie w analizowaniu powtarzaj\u0105cych si\u0119 wzorc\u00f3w, wi\u0119c badania ukierunkowane na wykrycie podobnych mechanizm\u00f3w przyspiesz\u0105.\u00a0<\/p>\n<p>Co robi\u0107? Nale\u017cy sprawdzi\u0107, czy nasze dystrybucje s\u0105 podatne. Je\u015bli tak jest, to jedyn\u0105 metod\u0105 jest obserwowanie repozytori\u00f3w dostawc\u00f3w w oczekiwaniu na \u0142atki. Dora\u017anie nale\u017cy zastosowa\u0107 mitygacj\u0119 polegaj\u0105c\u0105 na wy\u0142\u0105czeniu podatnych modu\u0142\u00f3w.\u00a0<\/p>\n<p>Black Hat Logan<\/p>\n","protected":false},"excerpt":{"rendered":"Pami\u0119tacie Dirty Pipe? \u0141atali\u015bcie ostatnio\u00a0 Copy Fail? Pasy zapi\u0119te? Nie? To niedobrze, bo kilka godzin temu pojawi\u0142a si\u0119&hellip;\n","protected":false},"author":2,"featured_media":417844,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[20],"tags":[77968,77969,46025,1973,77970,77971,120,118,119,77972,42,38,40,39,41,116,114,115,121,117,77973],"class_list":{"0":"post-417843","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-nauka-i-technika","8":"tag-copy-on-write","9":"tag-eskalacja-uprawnien","10":"tag-kernel","11":"tag-linux","12":"tag-local-root","13":"tag-lpe","14":"tag-nauka","15":"tag-nauka-i-technika","16":"tag-naukatechnika","17":"tag-pipe","18":"tag-pl","19":"tag-poland","20":"tag-polish","21":"tag-polska","22":"tag-polski","23":"tag-science","24":"tag-science-and-technology","25":"tag-sciencetechnology","26":"tag-technika","27":"tag-technology","28":"tag-zero-copy"},"share_on_mastodon":{"url":"https:\/\/pubeurope.com\/@pl\/116542884282534565","error":""},"_links":{"self":[{"href":"https:\/\/www.europesays.com\/pl\/wp-json\/wp\/v2\/posts\/417843","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.europesays.com\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.europesays.com\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.europesays.com\/pl\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.europesays.com\/pl\/wp-json\/wp\/v2\/comments?post=417843"}],"version-history":[{"count":0,"href":"https:\/\/www.europesays.com\/pl\/wp-json\/wp\/v2\/posts\/417843\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.europesays.com\/pl\/wp-json\/wp\/v2\/media\/417844"}],"wp:attachment":[{"href":"https:\/\/www.europesays.com\/pl\/wp-json\/wp\/v2\/media?parent=417843"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.europesays.com\/pl\/wp-json\/wp\/v2\/categories?post=417843"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.europesays.com\/pl\/wp-json\/wp\/v2\/tags?post=417843"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}