Escalade de privilèges dans Linux via la vulnérabilité Needrestart CVE-2024-48990
La vulnérabilité CVE-2024-48990 permet une escalade de privilèges locale (LPE) dans l'utilitaire Needrestart versions jusqu'à 3.8. Le problème réside dans la gestion de la variable d'environnement PYTHONPATH, permettant l'exécution de code arbitraire avec des privilèges root. Affecte Ubuntu 21.04 et versions ultérieures, Debian, Fedora, et autres distributions Linux. Score CVSS : 7.8.
Needrestart analyse les processus après les mises à jour de bibliothèques et redémarre les services vulnérables. L'attaque exploite des contrôles inadéquats sur les chemins de chargement des modules pour Python, Perl et Ruby en les remplaçant par des versions malveillantes.
Vérification de la vulnérabilité sur le système
Exécutez cette commande pour vérifier la version :
needrestart --version | grep -q "3.7" && echo "Définitivement vulnérable" || echo "La version n'est potentiellement pas vulnérable, cela vérifie simplement pour 3.7"
Les versions antérieures à 3.8 sont vulnérables. L'utilitaire s'exécute automatiquement lors de l'installation de paquets via apt, créant une fenêtre d'exploitation.
Exploitation étape par étape
Pour la démonstration, utilisez le PoC public. Clonez le dépôt et exécutez le script en tant qu'utilisateur ordinaire :
cd CVE-2024-48990-PoC-Testing
./runner.sh
Le script définit PYTHONPATH vers un module malveillant. Ensuite, en tant que root ou via sudo, effectuez une action qui déclenche Needrestart, comme :
sudo apt remove ntp; sudo apt install ntp
Cela mène à l'exécution de code avec des privilèges root, ouvrant un shell inverse ou un accès direct.
Détails techniques de l'attaque
La vulnérabilité se produit lors de l'analyse de PYTHONPATH : Needrestart ne valide pas les chemins, permettant l'injection d'un module chargé avec des privilèges élevés. Il en va de même pour PERL5LIB et RUBYLIB.
- L'attaquant définit PYTHONPATH=/path/to/malicious.
- Needrestart importe le module du chemin spécifié pendant le scan.
- La charge utile s'exécute avec des privilèges root.
Nécessite un accès local et l'invocation de Needrestart par un autre utilisateur (sudo).
Mesures de protection et correctifs
- Mettez à jour vers Needrestart 3.8 ou ultérieur : vulnérabilité corrigée avec une validation renforcée des variables d'environnement.
- Désactivez le scan des interpréteurs dans /etc/needrestart/needrestart.conf :
```
$nrconf{interpscan} = 0;
```
- Surveillez les variables d'environnement avec auditd ou falco.
- Utilisez AppArmor ou SELinux pour restreindre Needrestart.
Points clés
- CVE-2024-48990 est exploitée via PYTHONPATH sans accès root initial.
- Affecte les serveurs Ubuntu 21.04+, Debian, Fedora avec Needrestart activé par défaut.
- Correctif en version 3.8 : validation complète des chemins de modules.
- Recommandé : désactivez interpscan pour minimiser les risques.
- Testez les mises à jour dans un environnement isolé avant déploiement.
— Editorial Team
Aucun commentaire pour le moment.