Linux · Linux Kernel · CVE-2024-44943
**Nome do software vulnerável e versões afetadas**
Versões do kernel Linux anteriores à 6.6.50
**Descrição**
Foi relatado um aviso do kernel ao fixar um folio na memória CMA durante o lançamento da máquina virtual SEV. O problema ocorre devido ao uso incorreto da função `try grab folio()` tanto no caminho rápido quanto no caminho lento, levando a uma contagem de referências incorreta. A função `try grab folio()` deve ser usada no caminho rápido e eleva a contagem de referências do folio usando “add ref unless zero”. No entanto, no caminho lento, há pelo menos uma referência estável, portanto, um simples “add” atômico poderia ser usado. A diferença de desempenho é insignificante, mas o uso indevido pode ser confuso e enganoso.
A vulnerabilidade é resolvida redefinindo `try grab folio()` como `try grab folio fast()` e `try grab page()` como `try grab folio()`, e utilizando-as nos caminhos adequados. Isso resolve tanto o uso indevido quanto o aviso do kernel. A nomenclatura adequada torna seu caso de uso mais claro e deve evitar abusos no futuro.
**Recomendações**
Para resolver o problema, atualize o kernel do Linux para a versão 6.6.50 ou posterior. Esta atualização corrige a vulnerabilidade ao usar corretamente `try grab folio fast()` e `try grab folio()` em seus respectivos caminhos, evitando o aviso do kernel e o potencial uso indevido.