Linux · Linux Kernel · CVE-2024-49861
Nome do software vulnerável e versões afetadas:
Versões do kernel Linux anteriores à 6.6.58
Descrição:
Foi identificada uma vulnerabilidade no kernel Linux em que funções auxiliares específicas, com ARG PTR TO {LONG,INT} como argumentos, podem gravar em mapas BPF somente leitura a partir do lado do programa BPF. Isso ocorre porque o meta->raw mode nunca é definido em check func arg() quando o argumento é o mencionado, e check helper mem access() assume BPF READ para a chamada subsequente a check map access type(), permitindo que a operação de gravação seja bem-sucedida. O problema surge porque os auxiliares não são anotados como ARG PTR TO {LONG,INT} | MEM UNINIT quando os resultados são gravados neles. Para corrigir isso, os casos especiais ARG PTR TO {LONG,INT} são removidos e MEM ALIGNED é adicionado para garantir o alinhamento.
Recomendações:
Para versões do kernel Linux anteriores à 6.6.58, atualize para a versão 6.6.58 ou posterior para resolver o problema. Como solução temporária, considere restringir o acesso a mapas BPF somente leitura para minimizar o risco de exploração. Evite usar auxiliares com ARG PTR TO {LONG,INT} como argumentos em programas BPF até que o problema seja resolvido.