# Eskalacja uprawnień w Linuksie poprzez lukę w Needrestart CVE-2024-48990
Luka CVE-2024-48990 umożliwia lokalną eskalację uprawnień (LPE) w narzędziu Needrestart w wersjach do 3.8. Problem został zidentyfikowany w obsłudze zmiennej środowiskowej PYTHONPATH, co pozwala na wykonanie dowolnego kodu z uprawnieniami root. Dotyczy Ubuntu od 21.04, Debiana, Fedory i innych dystrybucji Linuksa. Ocena CVSS — 7.8.
Needrestart skanuje procesy po aktualizacji bibliotek i restartuje podatne serwisy. Atak wykorzystuje niewystarczającą kontrolę ścieżek ładowania modułów dla Pythona, Perla i Ruby, podstawiając złośliwe.
Sprawdzenie systemu pod kątem luki
Wykonaj polecenie, aby sprawdzić wersję:
needrestart --version | grep -q "3.7" && echo "Definitely vulnerable" || echo "Version is potentially not vulnerable, this simply checks for 3.7"
Wersje poniżej 3.8 są podatne. Narzędzie uruchamia się automatycznie podczas instalacji pakietów za pomocą apt, co tworzy okno dla wykorzystania.
Eksploatacja krok po kroku
Do demonstracji użyj publicznego PoC. Sklonuj repozytorium i uruchom skrypt jako zwykły użytkownik:
cd CVE-2024-48990-PoC-Testing
./runner.sh
Skrypt ustawia PYTHONPATH na złośliwy moduł. Następnie jako użytkownik root lub za pomocą sudo wykonaj czynność wywołującą Needrestart, na przykład:
sudo apt remove ntp; sudo apt install ntp
To doprowadzi do wykonania kodu z uprawnieniami root, otwierając reverse shell lub bezpośredni dostęp.
Szczegóły techniczne ataku
Luka arises podczas parsowania PYTHONPATH: Needrestart nie weryfikuje ścieżek, co pozwala na wstrzyknięcie modułu ładowanego z podwyższonymi uprawnieniami. Analogicznie dla PERL5LIB i RUBYLIB.
- Napastnik ustawia PYTHONPATH=/path/to/malicious.
- Needrestart podczas skanowania importuje moduł ze wskazanej ścieżki.
- Wykonywany jest payload z uprawnieniami root.
Wymaga lokalnego dostępu i uruchomienia Needrestart przez innego użytkownika (sudo).
Środki ochrony i łatanie
- Zaktualizuj do Needrestart 3.8 lub nowszej: luka została naprawiona poprzez wzmocnioną weryfikację zmiennych środowiskowych.
- Wyłącz skanowanie interpreterów w /etc/needrestart/needrestart.conf:
```
$nrconf{interpscan} = 0;
```
- Monitoruj zmienne środowiskowe za pomocą auditd lub falco.
- Używaj AppArmor lub SELinux do ograniczenia Needrestart.
Co ważne
- CVE-2024-48990 jest eksploatowana poprzez PYTHONPATH bez początkowego dostępu root.
- Dotyczy serwerów Ubuntu 21.04+, Debiana, Fedory z Needrestart domyślnie.
- Łatka w wersji 3.8: pełna weryfikacja ścieżek modułów.
- Zalecane wyłączenie interpscan w celu minimalizacji ryzyka.
- Testuj aktualizacje w izolowanym środowisku przed wdrożeniem.
— Editorial Team
Brak komentarzy.