
My take on the needrestart Python CVE-2024-48990
Este script de shell simples deve criar todos os arquivos necessários para que esta vulnerabilidade funcione.
Primeiro, ele cria um arquivo temporário gerado aleatoriamente que será usado para compilar o falso arquivo __init__.so. Quando a vulnerabilidade é acionada, este arquivo executará e copiará o binário bash para /tmp/ribbit e definirá o bit SUID. Em seguida, ele cria o diretório importlib no diretório de trabalho atual. Então, ele compila o arquivo temporário criado em __init__.so e o coloca no diretório recém-criado. Por último, ele cria outro arquivo python temporário com nome aleatório que dorme e espera a vulnerabilidade ser acionada. Uma vez acionada, ele executará o binário bash com SUID definido, resultando em um shell root.
Assim que o script python for iniciado, o needrestart precisa ser executado com permissões root. Isso normalmente é feito quando o apt-get é usado.