Rechteerhöhung in Linux durch Needrestart-Schwachstelle CVE-2024-48990
Die Schwachstelle CVE-2024-48990 ermöglicht eine lokale Rechteerhöhung (LPE) in der Needrestart-Utility in Versionen bis 3.8. Das Problem liegt in der Behandlung der Umgebungsvariable PYTHONPATH, die die Ausführung beliebigen Codes mit Root-Rechten ermöglicht. Betroffen sind Ubuntu 21.04 und neuer, Debian, Fedora und andere Linux-Distributionen. CVSS-Score: 7.8.
Needrestart scannt Prozesse nach Bibliotheksaktualisierungen und startet anfällige Dienste neu. Der Angriff nutzt unzureichende Kontrollen bei den Modulladewegen für Python, Perl und Ruby aus, indem er diese durch bösartige ersetzt.
Überprüfung des Systems auf die Schwachstelle
Führen Sie diesen Befehl aus, um die Version zu prüfen:
needrestart --version | grep -q "3.7" && echo "Definitely vulnerable" || echo "Version is potentially not vulnerable, this simply checks for 3.7"
Versionen unter 3.8 sind anfällig. Die Utility wird automatisch während der Paketinstallation über apt ausgeführt und schafft so ein Ausnutzungsfenster.
Schritt-für-Schritt-Ausnutzung
Zur Demonstration den öffentlichen PoC verwenden. Repository klonen und das Skript als normaler Benutzer ausführen:
cd CVE-2024-48990-PoC-Testing
./runner.sh
Das Skript setzt PYTHONPATH auf ein bösartiges Modul. Dann als root oder via sudo eine Aktion ausführen, die Needrestart auslöst, wie:
sudo apt remove ntp; sudo apt install ntp
Das führt zur Codeausführung mit Root-Rechten, öffnet eine Reverse-Shell oder gewährt direkten Zugriff.
Technische Angriffsdetails
Die Schwachstelle tritt beim Parsen von PYTHONPATH auf: Needrestart validiert Pfade nicht, was die Injektion eines Moduls mit erhöhten Rechten ermöglicht. Dasselbe gilt für PERL5LIB und RUBYLIB.
- Angreifer setzt PYTHONPATH=/path/to/malicious.
- Needrestart importiert das Modul aus dem angegebenen Pfad während des Scans.
- Payload wird mit Root-Rechten ausgeführt.
Erfordert lokalen Zugriff und Auslösung von Needrestart durch einen anderen Benutzer (sudo).
Schutzmaßnahmen und Patches
- Auf Needrestart 3.8 oder neuer aktualisieren: Schwachstelle durch erweiterte Validierung von Umgebungsvariablen behoben.
- Interpreter-Scan in /etc/needrestart/needrestart.conf deaktivieren:
```
$nrconf{interpscan} = 0;
```
- Umgebungsvariablen mit auditd oder falco überwachen.
- AppArmor oder SELinux nutzen, um Needrestart einzuschränken.
Wichtige Punkte
- CVE-2024-48990 wird über PYTHONPATH ohne initialen Root-Zugriff ausgenutzt.
- Betroffen: Ubuntu 21.04+-Server, Debian, Fedora mit Needrestart standardmäßig aktiviert.
- Patch in Version 3.8: vollständige Validierung der Modulpfade.
- Empfohlen: interpscan deaktivieren, um Risiken zu minimieren.
- Updates in einer isolierten Umgebung testen, bevor sie produktiv eingesetzt werden.
— Editorial Team
Noch keine Kommentare.