Linux · Linux Kernel · CVE-2024-40899
**Nome do software vulnerável e versões afetadas**
Versões do kernel Linux anteriores à 6.8.0-rc7-dirty #542
**Descrição**
O problema é causado por uma vulnerabilidade do tipo “slab-use-after-free” na função `cachefiles ondemand daemon read`. Isso ocorre quando um comando de restauração é emitido enquanto o daemon ainda está ativo, resultando no processamento de uma solicitação várias vezes e acionando um erro de uso após liberação (UAF). A vulnerabilidade pode ser explorada emitindo-se um comando de restauração enquanto o daemon ainda está ativo.
Os detalhes técnicos sobre a exploração incluem:
- A função `cachefiles ondemand get fd` é vulnerável a um erro UAF.
- A variável `REQ A` é usada para armazenar uma solicitação, e seu campo `done` é aguardado usando `wait for completion`.
- A função `cachefiles ondemand daemon read` lê dados de um descritor de arquivo, e a função `copy to user` é usada para copiar dados para um buffer do espaço do usuário.
- A função `xas for each` é usada para iterar sobre um conjunto de solicitações, e a função `xas set mark` é usada para definir uma marca em uma solicitação.
- A função `cachefiles ondemand restore` é usada para restaurar uma solicitação, e a função `xa erase` é usada para apagar uma solicitação do cache.
**Recomendações**
Para resolver o problema, adicione uma contagem de referência adicional a `cachefiles req`, que é mantida durante a espera e a leitura e, em seguida, liberada quando a espera e a leitura terminam. Como solução alternativa temporária, considere desativar a função `cachefiles ondemand daemon read` até que um patch esteja disponível.