Linux · Linux Kernel · CVE-2021-47118
**Nome do software vulnerável e versões afetadas**
Versões do kernel Linux anteriores à 5.13-rc3
**Descrição**
A vulnerabilidade está relacionada à inicialização de `cad pid` no kernel Linux. Durante a inicialização, `kernel init freeable()` inicializa `cad pid` com a estrutura `pid` da tarefa `init`. Posteriormente, quando `cad pid` é alterado por meio de um sysctl, `proc do cad pid()` incrementa a contagem de referências do novo pid por meio de `get pid()` e decrementa a contagem de referências do pid antigo por meio de `put pid()`. No entanto, como `get pid()` não foi chamado quando `cad pid` foi inicializado, uma referência que nunca foi incrementada é decrementada, o que pode levar à liberação prematura da estrutura pid da tarefa init. Isso pode causar referências pendentes à estrutura pid, resultando em um problema de uso após liberação (use-after-free) ao enviar sinais.
**Recomendações**
Para resolver este problema, obtenha uma referência à struct pid da tarefa de inicialização ao atribuí-la a `cad pid`. Isso pode ser feito chamando `get pid()` ao inicializar `cad pid`.
Observação: A informação fornecida não especifica as versões exatas que são vulneráveis nem as versões que contêm a correção. No entanto, com base nas informações fornecidas, parece que as versões anteriores à 5.13-rc3 são afetadas.