Retour à l'accueil

CVE-2024-48990 : LPE dans Needrestart Linux

Vulnérabilité CVE-2024-48990 dans Needrestart permettant LPE via manipulation de PYTHONPATH. Analyse du mécanisme, exploitation PoC et correctifs pour Ubuntu, Debian. Recommandations de protection des serveurs.

LPE via Needrestart : CVE-2024-48990 en détail
Advertisement 728x90

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 :

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

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

Google AdInline article slot

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

Advertisement 728x90

Lire ensuite