Copy Fail (CVE-2026-31431): groźna luka w Linuksie umożliwia eskalację uprawnień do root - Security Bez Tabu

Copy Fail (CVE-2026-31431): groźna luka w Linuksie umożliwia eskalację uprawnień do root

Cybersecurity news

Wprowadzenie do problemu / definicja

W jądrze Linuksa ujawniono podatność oznaczoną jako CVE-2026-31431, określaną nazwą Copy Fail. Błąd umożliwia lokalnemu, nieuprzywilejowanemu użytkownikowi doprowadzenie do eskalacji uprawnień do poziomu root poprzez korupcję page cache, czyli pamięci podręcznej plików wykorzystywanej przez system podczas odczytu i wykonywania danych.

Problem wynika z interakcji między interfejsem AF_ALG a wywołaniem splice() w kontekście operacji kryptograficznych realizowanych przez jądro. W praktyce atakujący może zapisać kontrolowane 4 bajty do page cache wybranego pliku, o ile ma możliwość jego odczytu, co otwiera drogę do przejęcia pełnych uprawnień administracyjnych.

W skrócie

  • Copy Fail to lokalna podatność typu privilege escalation o wysokiej wadze.
  • Luka została oznaczona jako CVE-2026-31431 i oceniona na CVSS 7.8.
  • Atak nie wymaga wyścigu czasowego ani wcześniejszych uprawnień roota.
  • Eksploit uderza w page cache, a nie bezpośrednio w plik na dysku.
  • Skutkiem może być uruchomienie zmodyfikowanego w pamięci binarium setuid i przejęcie konta root.
  • Problem może mieć znaczenie także w środowiskach kontenerowych i na hostach wieloużytkownikowych.

Kontekst / historia

Źródło błędu wiąże się z historycznymi zmianami w podsystemie kryptograficznym jądra Linuksa. Kluczowe znaczenie miały optymalizacje związane z przetwarzaniem in-place, obecne od lat i rozwijane w kolejnych wersjach kodu. Właśnie zestawienie tych decyzji projektowych z publicznie dostępnym interfejsem AF_ALG doprowadziło do powstania luki, która przez długi czas pozostawała niezauważona.

Copy Fail wyróżnia się na tle wielu wcześniejszych podatności linuksowych tym, że exploit jest stosunkowo niewielki, przewidywalny i nie zależy od niestabilnych warunków wykonania. Z punktu widzenia atakującego oznacza to niższy próg wejścia, a dla zespołów bezpieczeństwa większe ryzyko praktycznego wykorzystania w realnych środowiskach.

Analiza techniczna

Sedno problemu dotyczy logiki działania szablonu kryptograficznego authencesn w jądrze Linuksa. Atakujący wykorzystuje AF_ALG, który pozwala z przestrzeni użytkownika korzystać z wybranych operacji kryptograficznych bez potrzeby posiadania uprawnień administracyjnych. Następnie za pomocą splice() doprowadza do powiązania stron page cache wybranego pliku ze strukturami wejścia i wyjścia obsługiwanymi przez podatny podsystem.

W określonym scenariuszu operacja deszyfrowania AEAD jest wykonywana in-place, a implementacja używa bufora wyjściowego również jako przestrzeni roboczej. To prowadzi do zapisu 4 bajtów poza oczekiwaną granicę. Odpowiednie przygotowanie parametrów wejściowych pozwala skierować ten zapis do strony page cache wybranego pliku, dzięki czemu napastnik może precyzyjnie uszkodzić dane wykonywalnego binarium.

Najgroźniejszy aspekt tej luki polega na tym, że modyfikacja nie musi dotyczyć samego pliku na dysku. Zmieniana jest wyłącznie jego reprezentacja w pamięci podręcznej systemu plików. W efekcie klasyczne mechanizmy kontroli integralności mogą nie wykazać trwałej zmiany, podczas gdy system uruchomi już skażoną wersję programu znajdującą się w pamięci.

Publicznie opisywane scenariusze pokazują możliwość modyfikacji binariów setuid, takich jak su, a następnie ich uruchomienia w celu wykonania kodu z uprawnieniami root. Ponieważ page cache jest współdzielony w obrębie hosta, podatność może mieć również znaczenie dla izolacji kontenerów i bezpieczeństwa środowisk współdzielonych.

Konsekwencje / ryzyko

Ryzyko związane z Copy Fail należy ocenić jako wysokie, mimo że luka wymaga lokalnego dostępu do systemu. W praktyce taki dostęp może zostać uzyskany na wiele sposobów: przez przejęcie zwykłego konta użytkownika, wykonanie kodu po stronie aplikacji, kompromitację procesu w kontenerze albo uruchomienie złośliwego skryptu w środowisku wieloużytkownikowym.

  • szybka eskalacja uprawnień z konta nieuprzywilejowanego do root,
  • utrudniona detekcja incydentu z powodu braku trwałych zmian na dysku,
  • możliwość obejścia części mechanizmów opartych na integralności plików,
  • potencjalne naruszenie granic izolacji między kontenerem a hostem,
  • szeroki wpływ na popularne dystrybucje i systemy serwerowe.

Szczególnie niepokojące jest to, że exploit nie opiera się na skomplikowanym timingu. To zwiększa jego powtarzalność i sprawia, że podatność ma realną wartość operacyjną dla atakujących.

Rekomendacje

Najważniejszym działaniem obronnym jest jak najszybsze wdrożenie poprawek jądra dostarczonych przez producenta dystrybucji. W organizacjach korzystających z hostów wieloużytkownikowych, serwerów aplikacyjnych, środowisk CI/CD oraz platform kontenerowych problem powinien zostać potraktowany priorytetowo.

  • zweryfikować, czy używana wersja jądra zawiera poprawkę dostawcy,
  • zrestartować system po aktualizacji, aby usunąć potencjalnie skażone wpisy page cache,
  • ograniczyć liczbę kont z dostępem do lokalnej powłoki,
  • przeanalizować i zminimalizować użycie binariów setuid,
  • zaostrzyć polityki izolacji kontenerów oraz uruchamiania nieufnego kodu,
  • monitorować nietypowe użycie AF_ALG i splice(),
  • uwzględnić w procedurach reagowania fakt, że brak zmian na dysku nie wyklucza kompromitacji.

W środowiskach o podwyższonym profilu ryzyka warto również czasowo ograniczyć ekspozycję usług umożliwiających uzyskanie sesji lokalnej do momentu pełnego wdrożenia łatek i restartu systemów.

Podsumowanie

Copy Fail to jedna z najpoważniejszych lokalnych podatności ujawnionych ostatnio w ekosystemie Linuksa. Łączy prostotę wykorzystania, wysoką skuteczność oraz niski poziom widoczności śladów, ponieważ atak uderza w page cache zamiast bezpośrednio w pliki na nośniku.

Dla zespołów bezpieczeństwa kluczowe są trzy wnioski: pilne aktualizowanie jądra, obowiązkowy restart systemów po wdrożeniu poprawek oraz rozszerzenie modelu zagrożeń o scenariusze, w których pamięć podręczna plików staje się nośnikiem skutecznej eskalacji uprawnień i potencjalnego naruszenia izolacji kontenerowej.

Źródła

  1. https://securityaffairs.com/191519/hacking/copy-fail-new-linux-bug-enables-root-via-page-cache-corruption.html
  2. https://copy.fail/
  3. https://www.microsoft.com/en-us/security/blog/2026/05/01/cve-2026-31431-copy-fail-vulnerability-enables-linux-root-privilege-escalation/
  4. https://www.helpnetsecurity.com/2026/04/30/copyfail-linux-lpe-vulnerability-cve-2026-31431/
  5. https://www.suse.com/c/suse-responds-to-the-copy-fail-vulnerability/