
Co znajdziesz w tym artykule?
Wprowadzenie do problemu / definicja
W jądrze Linuksa ujawniono podatność CVE-2026-46331, określaną jako „pedit COW”. Błąd dotyczy podsystemu traffic control oraz akcji act_pedit, która służy do modyfikowania nagłówków pakietów. W praktyce luka pozwala lokalnemu, nieuprzywilejowanemu użytkownikowi uzyskać uprawnienia roota poprzez nadpisanie danych w pamięci page cache, bez bezpośredniej zmiany pliku binarnego na dysku.
To szczególnie niebezpieczny scenariusz, ponieważ klasyczne mechanizmy monitorowania integralności plików mogą nie wykryć naruszenia. Atak operuje bowiem na pamięciowym obrazie pliku wykonywalnego, a nie na jego trwałej kopii zapisanej w systemie plików.
W skrócie
- Podatność ma charakter lokalnej eskalacji uprawnień.
- Wymaga dostępu do
act_peditoraz nieuprzywilejowanych przestrzeni nazw użytkownika. - Publicznie dostępny exploit pojawił się bardzo szybko po ujawnieniu luki.
- Atak może zatruć pamięciową kopię binarki setuid, np.
/bin/su, i uruchomić ją z uprawnieniami roota. - Integralność plików na dysku może pozostać pozornie nienaruszona mimo skutecznej kompromitacji systemu.
Kontekst / historia
CVE-2026-46331 opublikowano 16 czerwca 2026 roku. Problem wpisuje się w szerszą kategorię błędów związanych z naruszeniem semantyki copy-on-write oraz nieuprawnionym zapisem do page cache. Tego rodzaju podatności od lat są traktowane bardzo poważnie, ponieważ mogą prowadzić do przejęcia kontroli nad systemem bez pozostawienia oczywistych śladów w warstwie plików.
W tym przypadku istotne jest także to, że poprawka techniczna pojawiła się wcześniej jako zmiana związana z uszkodzeniem danych, zanim problem został szerzej rozpoznany jako luka bezpieczeństwa. To kolejny przykład pokazujący, że monitorowanie zmian w jądrze i analizowanie mailing list deweloperskich ma duże znaczenie dla threat intelligence i szybkiej oceny ryzyka.
Analiza techniczna
Źródłem problemu jest błąd typu out-of-bounds write w implementacji tcf_pedit_act(). Mechanizm pedit powinien działać zgodnie z modelem copy-on-write, a więc tworzyć prywatną kopię danych przed dokonaniem modyfikacji. W podatnym kodzie walidacja zakresu zapisu następowała jednak przed pełnym ustaleniem końcowych offsetów dla części kluczy edycji.
W efekcie zapis może wyjść poza prywatnie skopiowany obszar i objąć stronę pamięci współdzieloną przez page cache. Jeżeli taka strona odpowiada buforowanej zawartości pliku wykonywalnego, napastnik zyskuje możliwość zmiany jego obrazu wyłącznie w pamięci RAM.
W praktycznym scenariuszu exploit nie modyfikuje binarki setuid na dysku, lecz zatruwa jej kopię w page cache, wstrzykuje niewielki payload i uruchamia taki obraz z uprawnieniami roota. To odróżnia „pedit COW” od prostszych ataków polegających na podmianie plików i utrudnia wykrycie incydentu przez narzędzia skoncentrowane wyłącznie na warstwie storage.
Warunki skutecznego wykorzystania luki są dwa. Po pierwsze, moduł act_pedit musi być dostępny lub możliwy do załadowania. Po drugie, system musi zezwalać na nieuprzywilejowane user namespaces, które umożliwiają uruchomienie ścieżki kodu wymagającej uprawnień zbliżonych do CAP_NET_ADMIN. Z tego względu zagrożenie jest szczególnie istotne na hostach współdzielonych, runnerach CI/CD, węzłach kontenerowych i środowiskach laboratoryjnych.
Dostępne informacje wskazują, że skuteczną eskalację uprawnień potwierdzono między innymi na RHEL 10 oraz Debianie 13 „trixie”. W chwili publikacji informacji Debian odnotował poprawkę dla trixie, natomiast wybrane starsze gałęzie nadal były oznaczane jako podatne. W przypadku Ubuntu status podatności obejmował wspierane wydania, choć praktyczna wykonalność mogła zależeć od polityk AppArmor i konfiguracji user namespaces.
Konsekwencje / ryzyko
Najpoważniejszym skutkiem podatności jest pełna lokalna eskalacja uprawnień do roota. Oznacza to możliwość przejęcia hosta, kradzieży danych i sekretów, manipulowania procesami bezpieczeństwa, wyłączania zabezpieczeń oraz ustanowienia trwałości w systemie.
Ryzyko rośnie wszędzie tam, gdzie na jednej maszynie uruchamiany jest kod pochodzący od mniej zaufanych użytkowników, zespołów lub pipeline’ów automatyzacji. Dotyczy to zwłaszcza środowisk deweloperskich, platform budujących artefakty, serwerów współdzielonych i infrastruktury kontenerowej.
Z perspektywy detekcji problem jest wyjątkowo trudny, ponieważ zmiana dotyczy pamięciowego obrazu pliku wykonywalnego. Narzędzia monitorujące wyłącznie sumy kontrolne lub stan systemu plików mogą nie zauważyć kompromitacji. Jeżeli atakujący zdążył uzyskać sesję roota, wdrożyć trwałość lub wykraść poświadczenia, sam fakt wyczyszczenia page cache nie rozwiązuje problemu.
Rekomendacje
Najważniejszym działaniem jest niezwłoczna instalacja poprawek jądra dostarczonych przez producenta dystrybucji oraz restart systemu. Priorytetowo należy potraktować systemy wielodostępne, hosty CI/CD, węzły Kubernetes, maszyny laboratoryjne oraz serwery, na których lokalni użytkownicy nie są w pełni zaufani.
Jeżeli szybkie wdrożenie poprawek nie jest możliwe, warto ograniczyć łańcuch eksploatacji poprzez działania tymczasowe:
- zweryfikować, czy
act_peditjest rzeczywiście potrzebny operacyjnie, - zablokować ładowanie modułu
act_pedit, jeżeli nie jest używany, - wyłączyć nieuprzywilejowane user namespaces tam, gdzie nie są wymagane,
- ocenić wpływ tych zmian na rootless containers, sandboxy CI i mechanizmy izolacji aplikacji.
Warto również rozszerzyć monitoring o sygnały wskazujące na nietypowe użycie narzędzia tc, operacje związane z namespaces oraz anomalie przy uruchamianiu binarek setuid. W przypadku wykrycia próby wykorzystania luki lub potwierdzenia incydentu host należy traktować jako przejęty. Oznacza to konieczność izolacji systemu, analizy pamięci, rotacji poświadczeń i odtworzenia środowiska z zaufanego źródła.
Podsumowanie
„pedit COW” pokazuje, jak niepozorny błąd w obsłudze copy-on-write i page cache może przełożyć się na pełną kompromitację systemu Linux. Szczególnie groźny jest fakt, że atak omija klasyczne kontrole integralności plików, ponieważ modyfikuje jedynie pamięciowy obraz binarki setuid.
Dla organizacji korzystających z Linuksa CVE-2026-46331 powinno być traktowane jako priorytetowy problem operacyjny. Kluczowe znaczenie mają szybkie łatanie, ograniczenie ekspozycji przez act_pedit i user namespaces oraz gotowość do przeprowadzenia pełnej obsługi incydentu.