O projeto llama.cpp lançou a versão b11000, que aborda uma vulnerabilidade crítica de segurança no servidor RPC. A correção resolve um bug de uso após liberação que permitia que clientes remotos não autenticados executassem código remoto manipulando gráficos de computação em cache.
- Uma implementação anterior armazenava em cache os gráficos de computação por dispositivo para evitar o reenvio de dados de tensores durante operações GRAPH_RECOMPUTE.
- Esses nós em cache continham ponteiros diretos para buffers do backend; se um buffer fosse liberado via FREE_BUFFER, a reexecução subsequente acessava ponteiros pendentes.
- Os atacantes podiam remodelar blocos de memória por meio dos comandos ALLOC_BUFFER e SET_TENSOR para vazar endereços da libc e sequestrar a vtable da interface do buffer.
- O patch descarta todos os gráficos em cache em free_buffer(), fazendo com que o cliente recorra ao GRAPH_COMPUTE na próxima chamada.
Esta atualização impede explorações de execução remota de código direcionadas ao servidor RPC do llama.cpp sem exigir alterações no protocolo ou na API.