Linux · Linux Kernel · CVE-2024-50154
Nome do software vulnerável e versões afetadas:
Versões do kernel Linux anteriores à 6.6.61
Descrição:
Foi relatada uma vulnerabilidade do tipo “use-after-free” no gerenciamento do temporizador TCP do kernel Linux. O problema ocorre quando o `req->sk` é fechado antes do tempo de expiração do temporizador, que é de 63 segundos por padrão. Isso pode acontecer em um cenário em que `inet csk complete hashdance()` chama `inet csk reqsk queue drop()`, mas `del timer sync()` não é executado, permitindo que o temporizador reqsk continue em execução e envie múltiplos SYN+ACKs até expirar. A vulnerabilidade pode ser explorada anexando um programa BPF a `trace tcp retransmit synack`, que passa o `req->sk` para o auxiliar do kernel `bpf sk storage get tracing`.
Recomendações:
Para resolver o problema, atualize o kernel do Linux para a versão 6.6.61 ou posterior. Como solução temporária, considere desativar a função `bpf sk storage get tracing` até que um patch esteja disponível. Restrinja o acesso à função vulnerável `reqsk queue unlink` para minimizar o risco de exploração. Evite usar a função `timer pending()` em `reqsk queue unlink()` até que o problema seja resolvido.