El proyecto llama.cpp lanzó la versión b11000, que aborda una vulnerabilidad crítica de seguridad en el servidor RPC. La corrección resuelve un error de uso tras liberar que permitía a clientes remotos no autenticados lograr la ejecución remota de código manipulando los gráficos de cómputo en caché.

  • Una implementación anterior almacenaba en caché los gráficos de cómputo por dispositivo para evitar reenviar datos de tensores durante las operaciones GRAPH_RECOMPUTE.
  • Estos nodos en caché contenían punteros directos a los búferes del backend; si un búfer se liberaba mediante FREE_BUFFER, la reejecución subsiguiente accedía a punteros colgantes.
  • Los atacantes podían remodelar fragmentos de memoria mediante comandos ALLOC_BUFFER y SET_TENSOR para filtrar direcciones de libc y secuestrar la vtable de la interfaz del búfer.
  • El parche descarta todos los gráficos en caché en free_buffer(), haciendo que el cliente vuelva a GRAPH_COMPUTE en la siguiente llamada.

Esta actualización previene exploits de ejecución remota de código dirigidos al servidor RPC de llama.cpp sin requerir cambios en el protocolo o la API.