Linux miał 10-letni błąd. Dawał roota zwykłemu użytkownikowi

Aktualności Systemy operacyjne Obserwuj nas w Google

Linux miał 10-letni błąd. Dawał roota zwykłemu użytkownikowi

W jądrze Linuksa wykryto poważną lukę bezpieczeństwa, która może pozwolić lokalnemu użytkownikowi przejąć pełną kontrolę nad systemem. Błąd nazwany Vghost i oznaczony jako CVE-2026-74580 występuje w kodzie rozwijanym od lat. W określonych konfiguracjach umożliwia również atak z maszyny wirtualnej na jej hosta. Problem odkryli badacze z Tencent Zhuque, korzystając z systemu sztucznej inteligencji wspomagającego wyszukiwanie podatności.

Zagrożenie dotyczy szerokiego zakresu wersji jądra, od Linuksa 4.11 do 7.2-rc4. Dostępne są już poprawki dla części dystrybucji, ale administratorzy muszą sprawdzić, czy ich systemy otrzymały odpowiednie aktualizacje. 

Podatność znajduje się w podsystemie vhost, części jądra Linuksa, która przyspiesza sieć i inne operacje wejścia/wyjścia dla maszyn wirtualnych i kontenerów. Użytkownik lokalny uzyskuje do niego dostęp poprzez otwarcie węzła urządzenia, zazwyczaj /dev/vhost-net lub /dev/vhost-vsock.

Problem tkwi w sposobie zarządzania mapowaniami pamięci. W określonych warunkach jądro może korzystać z nieaktualnych informacji o adresach i rozmiarach obszarów pamięci. W rezultacie operacje odczytu lub zapisu mogą wykraczać poza prawidłowo przypisany region. Atakujący, który uzyska odpowiedni dostęp do urządzenia vhost, może wykorzystać błąd do odczytu i modyfikacji dowolnych obszarów pamięci jądra. Otwiera to drogę do eskalacji uprawnień i przejęcia kontroli nad systemem z poziomu roota.

Nie oznacza to jednak, że podatność pozwala każdemu zdalnemu użytkownikowi natychmiast włamać się do dowolnego komputera z Linuksem. Podstawowy scenariusz wymaga dostępu lokalnego oraz możliwości korzystania z odpowiedniego urządzenia. W zależności od dystrybucji i konfiguracji uprawnienia do niego mogą mieć wszyscy użytkownicy albo wyłącznie członkowie określonej grupy.

Błąd został wykryty przy pomocy Corvus AI, wieloagentowego systemu stworzonego przez Tencent do badań nad lukami w zabezpieczeniach jądra

Maszyna wirtualna może zaatakować komputer gospodarza

Jeszcze poważniejszy scenariusz dotyczy środowisk wirtualizacyjnych. W określonej konfiguracji niezaufana maszyna wirtualna może wykorzystać ten sam błąd, by doprowadzić do zapisu danych poza dozwolonym obszarem pamięci procesu QEMU działającego na hoście.

Atakujący może wówczas próbować zmodyfikować dane sterujące działaniem procesu, a następnie przejąć nad nim kontrolę lub doprowadzić do jego awarii. Taki scenariusz narusza granicę izolacji między maszyną wirtualną a systemem gospodarza.

Błąd przetrwał w jądrze niemal dekadę

Vghost jest szczególnie interesujący ze względu na historię swojego powstania. Według badaczy podatność wynika z połączenia dwóch zmian w kodzie jądra Linuksa. Pierwsza, wprowadzona w 2017 roku wraz z Linuksem 4.11, dodała pamięć podręczną mapowań. Kolejna, z 2020 roku, przeniosła sprawdzanie adresów do późniejszego etapu przetwarzania. W określonych warunkach połączenie tych mechanizmów pozwalało zachować nieaktualne mapowania podczas rekonfiguracji aktywnej kolejki.

Problem nie wymagał więc pojedynczego błędu w nowym fragmencie kodu. Ujawnił się dopiero w wyniku współdziałania rozwiązań wprowadzonych w różnych latach. Zespół Tencent Zhuque opublikował poprawkę 3 sierpnia 2026 roku, a 12 października przedstawił szczegóły podatności i działające demonstracje ataków. Według dostępnych informacji nie ma publicznego potwierdzenia, że luka była wykorzystywana w rzeczywistych atakach.

Kogo to dotyczy i co robić

Luka dotyczy jąder Linuksa od wersji 4.11 do 7.2-rc4. Tencent odtworzył pełny łańcuch od użytkownika lokalnego do roota w pięciu jądrach dystrybucyjnych: Ubuntu 26.04, RHEL 9.8, Amazon Linux 2023, Microsoft Azure Linux 3.0 i Oracle Linux 10.2. W Ubuntu węzeł urządzenia był ograniczony do grupy kvm, więc punktem wyjścia był członek tej grupy, a nie dowolny użytkownik.

Na pozostałych czterech testowanych obrazach węzeł był czytelny dla wszystkich w trybie 0666, więc mógł do niego dotrzeć każdy lokalny użytkownik.

Red Hat, Amazon Linux i Oracle Linux udostępnili już poprawki. Ubuntu naprawiło wersję 22.04, a od 13 października kernele 24.04 i 26.04 nadal są oznaczone jako w trakcie prac.

Dopóki nie zostanie wdrożone stałe jądro, należy ograniczyć dostęp do vhost.  Nie ma tymczasowego obejścia problemu przejścia z gościa do hosta; w tym przypadku jedynym rozwiązaniem jest poprawiona wersja jądra.

Luka została oceniona wysoko, a nie krytycznie, a oceniający nie są zgodni co do jej skali. Zespół kernel.org CVE przyznał jej ocenę 8,8, Red Hat 7,3, Amazon 7,8, a Oracle 7,3. 

Pokaż / Dodaj komentarze do:

Linux miał 10-letni błąd. Dawał roota zwykłemu użytkownikowi
 0