Powrót do strony głównej

CVE-2024-48990: LPE w Needrestart Linux

Podatność CVE-2024-48990 w Needrestart pozwala na LPE poprzez manipulację PYTHONPATH. Analiza mechanizmu, PoC-eksploatacja i łatanie dla Ubuntu, Debian. Zalecenia dotyczące ochrony serwerów.

LPE poprzez Needrestart: CVE-2024-48990 szczegółowo
Advertisement 728x90

# 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ę:

Google AdInline article slot
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:

Google AdInline article slot
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).

Google AdInline article slot

Ś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

Advertisement 728x90

Czytaj dalej