Linux · Linux Kernel · CVE-2024-50071
**Nome do software vulnerável e versões afetadas**
Kernel do Linux (versões afetadas não especificadas)
**Descrição**
O problema está relacionado a uma vulnerabilidade de liberação dupla na função `ma35 pinctrl dt node to map func()` dentro do módulo `drivers/pinctrl/nuvoton/pinctrl-ma35.c` do kernel Linux. Essa vulnerabilidade pode ser explorada para comprometer a confidencialidade, integridade e disponibilidade de informações protegidas. O problema surge porque `new map` é alocado usando `devm *`, que libera automaticamente os dados alocados ao remover o dispositivo. No entanto, uma chamada para `dt free map = pinconf generic dt free map` resulta em uma liberação dupla, pois `pinconf generic dt free map()` chama `pinctrl utils free map()`.
**Recomendações**
Para resolver o problema, use `kcalloc()` em vez do `devm kcalloc()` gerenciado automaticamente para alocar `new map`. Essa alteração evita a vulnerabilidade de liberação dupla, garantindo que a memória não seja liberada automaticamente pelo `devm *` quando o dispositivo for removido, evitando assim o conflito com a operação de liberação manual realizada por `pinconf generic dt free map()`.