
W świecie cyberbezpieczeństwa systemów Linux głośno zrobiło się o klasie podatności związanych z pamięcią podręczną stron (page cache). Po znanych błędach takich jak Dirty COW (2016), Dirty Pipe (2022) oraz niedawnym Copy Fail, odkryto kolejną, niezwykle groźną lukę.
Mowa o „Dirty Frag” – łańcuchu podatności oznaczonych jako CVE-2026-43284 oraz CVE-2026-43500. Pozwala ona lokalnemu, nieuwierzytelnionemu użytkownikowi na natychmiastowe i niemal stuprocentowo powtarzalne przejęcie uprawnień administratora (root).
Oto szczegółowa analiza tego, jak działa Dirty Frag, dlaczego budzi taki niepokój i jak zabezpieczyć przed nim swoje systemy.
Anatomia ataku: Jak działa Dirty Frag?
Większość tradycyjnych podatności typu LPE (Local Privilege Escalation) w jądrze Linuksa opiera się na tzw. wyścigach (wykorzystaniu luk w czasie – race conditions) lub skomplikowanym uszkadzaniu struktur pamięci jądra. Są one często niestabilne i mogą doprowadzić do zawieszenia systemu (kernel panic).
Dirty Frag działa zupełnie inaczej – jest deterministyczny i niezwykle niezawodny.
[Nieuprawniony użytkownik]
│
▼ (Użycie wywołania splice())
[Wstrzyknięcie chronionego pliku (np. /etc/passwd) do bufora sieciowego sk_buff]
│
▼ (Operacja kryptograficzna in-place w module ESP/RxRPC)
[Modyfikacja zawartości w pamięci RAM (Page Cache)]
│
▼
[System widzi zmodyfikowany plik -> Uzyskanie dostępu ROOT]
Mechanizm podatności
Podatność tkwi w podsystemach sieciowych jądra odpowiedzialnych za IPsec (moduł xfrm-ESP) oraz w transporcie RxRPC.
- Zero-copy i
splice(): Atakujący wykorzystuje mechanizmy optymalizacji pamięci (tzw. zero-copy). Za pomocą wywołania systemowegosplice()mapuje do bufora sieciowego jądra (sk_buff) plik, do którego ma uprawnienia wyłącznie do odczytu (np./etc/passwdlub binarium/usr/bin/su). Odnośnik ląduje bezpośrednio w polu fragmentacji struktury (frag). - Kryptografia “in-place”: Kiedy wspomniane moduły sieciowe przetwarzają pakiet, wykonują operacje kryptograficzne (odszyfrowywanie/modyfikację) bezpośrednio na strukturze
fragw pamięci podręcznej stron (page cache). - Zatrucie pamięci podręcznej: Ponieważ jądro dokonuje zapisu bezpośrednio w pamięci RAM, modyfikuje zawartość pliku w page cache. Choć plik na dysku pozostaje nienaruszony, dla systemu operacyjnego i wszystkich procesów odczytujących go z pamięci podręcznej, jego zawartość uległa zmianie.
W praktyce napastnik może tymczasowo „podmienić” zawartość pliku konfiguracyjnego w pamięci jądra, nadpisać uprawnienia lub wstrzyknąć kod do uruchamianego programu narzędziowego i jednym poleceniem otworzyć powłokę roota.
Dlaczego Dirty Frag jest tak niebezpieczny?
- Wysoka niezawodność: Brak konieczności celowania w “okno czasowe” sprawia, że publicznie dostępne exploity (w tym warianty znane jako Copy Fail 2 czy DirtyDecrypt) działają błyskawicznie i bezbłędnie.
- Szeroki wachlarz systemów: Podatność dotyczy kodu wprowadzonego do jądra w okolicach 2017 (dla ESP) i 2023 roku (dla RxRPC). Problem dotknął czołowe dystrybucje korporacyjne i serwerowe, w tym Ubuntu, Red Hat Enterprise Linux (RHEL), AlmaLinux, Rocky Linux, Fedora oraz openSUSE.
- Ułatwienie dla dalszych ataków: Choć Dirty Frag wymaga lokalnego dostępu do systemu, stanowi potężny “akcelerator” dla cyberprzestępców. Po przejęciu konta o niskich uprawnieniach (np. poprzez lukę w aplikacji webowej, dostęp SSH czy ucieczkę z kontenera), atakujący natychmiastowo staje się pełnoprawnym administratorem hosta.
Warto wiedzieć (Warianty podatności): Krótko po ujawnieniu Dirty Frag, badacze zidentyfikowali kolejne mutacje tej samej klasy błędów – m.in. Fragnesia (CVE-2026-46300), która infekuje mechanizmy ESP-in-TCP. Wszystkie te podatności łączy ten sam problem: błędy w obsłudze operacji zero-copy w pamięci RAM.
Jak zabezpieczyć systemy? Remediacja i mitygacja
Najskuteczniejszą formą obrony jest aktualizacja jądra systemu Linux do najnowszej wersji dostarczanej przez dystrybutora, w której błąd został już załatany.
Jeśli natychmiastowy restart serwera lub aktualizacja nie są możliwe, można zastosować tymczasową mitygację polegającą na zablokowaniu podatnych modułów w jądrze.
Tymczasowe zablokowanie podatnych modułów
Możesz wyłączyć automatyczne ładowanie modułów esp4, esp6 oraz rxrpc poprzez dodanie reguły do modprobe:
- Stwórz plik konfiguracyjny mitygacji:Bash
echo -e "install esp4 /bin/false\ninstall esp6 /bin/false\ninstall rxrpc /bin/false" | sudo tee /etc/modprobe.d/dirtyfrag.conf
2. Jeśli moduły są już załadowane w pamięci, spróbuj je usunąć (może to wymagać restartu, jeśli są używane):
```bash
sudo rmmod esp4 esp6 rxrpc 2>/dev/null
⚠️ Uwaga na regreację usług: Wyłączenie modułów
esp4iesp6uniemożliwi poprawne działanie tuneli IPsec VPN (np. StrongSwan, LibreSwan). Z kolei zablokowanierxrpcwpłynie na środowiska korzystające z rozproszonego systemu plików AFS (Andrew File System). Przed wdrożeniem zmian na produkcji należy przeanalizować profil sieciowy serwera.
Dodatkowe środki ostrożności
Ponieważ exploit modyfikuje pliki systemowe w pamięci RAM, samo zablokowanie modułów na aktywnym (i potencjalnie zainfekowanym) serwerze nie usunie ewentualnych złośliwych zmian w page cache. W przypadku podejrzenia infekcji przed nałożeniem mitygacji zaleca się pełny restart maszyny oraz weryfikację integralności kluczowych plików systemowych.
