
Mon avis sur le CVE-2024-48990 de needrestart Python
Ce simple script shell doit créer tous les fichiers nécessaires pour que cette vulnérabilité fonctionne.
D'abord, il crée un fichier temporaire généré aléatoirement qui sera utilisé pour compiler le faux fichier __init__.so. Lorsque la vulnérabilité est déclenchée, ce fichier exécutera et copiera le binaire bash vers /tmp/ribbit et définira le bit SUID. Ensuite, il crée le répertoire importlib dans le répertoire de travail courant. Puis il compile le fichier temporaire créé en __init__.so et le place dans le répertoire nouvellement créé. Enfin, il crée un autre fichier python temporaire nommé aléatoirement qui dort et attend que la vulnérabilité soit déclenchée. Une fois déclenchée, il exécutera le binaire bash avec le bit SUID défini, ce qui donne un shell root.
Une fois le script python démarré, needrestart doit s'exécuter avec les permissions root. Cela se fait généralement lorsqu'apt-get est utilisé.