.
Uma vulnerabilidade agora corrigida no Ollama – um projeto popular de código aberto para execução de LLMs – pode levar à execução remota de código, de acordo com descobridores de falhas que alertaram que mais de 1.000 instâncias vulneráveis permanecem expostas à Internet.
A Wiz Research divulgou a falha, rastreada como CVE-2024-37032 e apelidada de Probllama, em 5 de maio e seus mantenedores corrigiram o problema na versão 0.1.34 que foi lançada via GitHub um dia depois.
Ollama é útil para realizar inferências com redes neurais compatíveis – como a família Llama do Meta, daí o nome; O clã Phi da Microsoft; e modelos da Mistral – e pode ser usado na linha de comando ou por meio de uma API REST. Possui centenas de milhares de pulls mensais no Docker Hub.
Em um relatório publicado hoje, Sagi Tzadik, da equipe de caça a bugs do Wiz, disse que a vulnerabilidade se deve à validação insuficiente no lado do servidor da API REST fornecida pela Ollama. Um invasor pode explorar a falha enviando uma solicitação HTTP especialmente criada para o servidor API Ollama – e nas instalações do Docker, pelo menos, o servidor API é exposto publicamente.
O servidor Ollama fornece vários endpoints de API que executam funções essenciais. Isso inclui o endpoint da API /api/pull
que permite aos usuários baixar modelos do registro Ollama, bem como de registros privados. Como descobriram os pesquisadores, o processo para acionar o download de um modelo era explorável, permitindo que criminosos comprometessem potencialmente o ambiente que hospeda um servidor Ollama vulnerável.
“O que descobrimos é que ao extrair um modelo de um registro privado (consultando o http://[victim]:11434/api/pull API endpoint), é possível fornecer um arquivo de manifesto malicioso que contém uma carga útil de passagem de caminho no campo de resumo”, explicou Tzadik.
Um invasor pode então usar essa carga para corromper arquivos no sistema, obter leitura arbitrária de arquivos e, por fim, execução remota de código (RCE) para sequestrar esse sistema.
“Esse problema é extremamente grave nas instalações do Docker, pois o servidor é executado com privilégios de root e escuta em 0.0.0.0 por padrão – o que permite a exploração remota desta vulnerabilidade”, enfatizou Tzadik.
E apesar de uma versão corrigida do projeto estar disponível há mais de um mês, os filhos do Wiz descobriram que, em 10 de junho, havia mais de 1.000 instâncias vulneráveis do servidor Ollama ainda expostas à Internet. Diante disso, há algumas coisas que qualquer pessoa que usa o Ollama deve fazer para proteger seus aplicativos de IA.
Dos RAGs às riquezas: um guia prático para tornar seu chatbot de IA local mais inteligente
MÃOS EM
Primeiro, o que nem é preciso dizer, atualize as instâncias para a versão 0.1.34 ou mais recente. Além disso, como o Ollama não oferece suporte inerente à autenticação, não exponha as instalações à Internet, a menos que use algum tipo de autenticação, como um proxy reverso. Melhor ainda, não permita que a Internet chegue ao servidor, coloque-o atrás de firewalls e permita apenas que aplicativos internos autorizados e seus usuários o acessem.
“A questão crítica não são apenas as vulnerabilidades em si, mas a inerente falta de suporte de autenticação nessas novas ferramentas”, observou Tzadik, referindo-se aos RCEs anteriores em outras ferramentas usadas para implantar LLMs, incluindo TorchServe e Ray Anyscale.
Além disso, acrescentou ele, mesmo essas ferramentas são novas e muitas vezes escritas em linguagens de programação modernas que priorizam a segurança, “vulnerabilidades clássicas, como a travessia de caminho, continuam sendo um problema”. ®
.