Linux · Linux Kernel · CVE-2024-57889
**Nome do Software Vulnerável e Versões Afetadas**
Versões do kernel Linux anteriores à 6.6.74
**Descrição**
Uma vulnerabilidade no kernel Linux foi resolvida, especificamente no driver pinctrl-mcp23s08. O problema ocorre quando um dispositivo usa o expansor de IO MCP23xxx para receber IRQs, o que pode causar a chamada de uma função que pode dormir a partir de um contexto inválido. Isso acontece porque o regmap no driver usa um mutex para proteção contra acessos concorrentes, mas o sistema tenta travar o mutex enquanto mantém um spinlock. A vulnerabilidade foi observada durante experimentos com um driver de touchscreen que usava o expansor de IO MCP23017. O número estimado de dispositivos potencialmente afetados não foi especificado.
**Recomendações**
Para resolver o problema, atualize para a versão 6.6.74 ou posterior do kernel Linux. Como solução temporária, considere desabilitar a função `mcp23s08 irq set type()` até que um patch esteja disponível. Restrinja o acesso ao driver `mcp23s08` para minimizar o risco de exploração. Evite usar a função `regmap update bits base()` no endpoint de API afetado até que o problema seja resolvido. Além disso, aplique o patch que adiciona bloqueio em `mcp pinconf get/set()` e desabilita o bloqueio interno na configuração do regmap.