Linux · Linux Kernel · CVE-2024-45000
**Nome do software vulnerável e versões afetadas**
Versões do kernel Linux anteriores à 6.6.50
**Descrição**
Foi identificado um bug de desreferência de ponteiro NULL no kernel Linux devido a uma corrida de dados. Esse problema ocorre quando a função `fscache cookie state machine()` está lenta e ainda em execução enquanto outro processo invoca `fscache unuse cookie()`, levando a uma chamada `fscache cookie lru do one()` que define o sinalizador `FSCACHE COOKIE DO LRU DISCARD`. Esse sinalizador é então captado por `fscache cookie state machine()`, que retira o cookie via `cachefiles withdraw cookie()` e limpa `cookie->cache priv`. Ao mesmo tempo, outro processo pode invocar `cachefiles prepare write()`, encontrando um ponteiro NULL na linha de código `struct cachefiles object *object = cachefiles cres object(cres)`, causando uma falha. O contador `n accesses` é diferente de zero durante `cachefiles prepare write()` (via `fscache begin operation()`), e o cookie não deve ser retirado até que esse contador chegue a zero. O contador é verificado por `fscache cookie state machine()` antes de mudar para determinados estados, mas não para `FSCACHE COOKIE STATE LRU DISCARDING`. Este patch adiciona a verificação que faltava, garantindo que, com um contador de acessos diferente de zero, a função retorne e a próxima chamada `fscache end cookie access()` enfileire outra chamada `fscache cookie state machine()` para lidar com o `FSCACHE COOKIE DO LRU DISCARD` ainda pendente.
**Recomendações**
Para resolver este problema, atualize o kernel do Linux para a versão 6.6.50 ou posterior