Alerta crítico CVE-2026-5760 expõe execução remota de código em SGLang por SSTI em modelos Jinja2 dentro de arquivos GGUF

Publicada 5 min de lectura 152 leituras

Uma vulnerabilidade grave tem sido revelada em SGLang que, se for aproveitada, permite a execução remota de código em servidores que corram este framework. A referência CVE-2026-5760 foi atribuída e, segundo a pontuação CVSS publicada, sua gravidade é praticamente máxima: 9.8 sobre 10. 0. Em termos práticos, um atacante pode forjar um arquivo de modelo em formato GGUF que, ao ser carregado e usado pelo SGLang, desencadeia a execução de comandos arbitrários na equipe vítima.

O vetor de ataque é apoiado em modelos do motor Jinja2 que são representados sem as restrições necessárias. Especificamente, o problema aparece quando o SGLang processa o parâmetro tokenizer.chat_template incluído dentro de um GGUF malicioso: esse conteúdo pode conter uma payload do Server-Side Template Injection (SSTI) que, ao ser executado pelo ambiente de modelos usado pelo SGLang, permite executar código Python no contexto do serviço. O CERT Coordination Center (CERT/CC) detalha este fluxo em seu aviso, indicando que o endpoint afetado é "/v1/rerank", comumente usado para tarefas de reranking em pipelines de inferência.

Alerta crítico CVE-2026-5760 expõe execução remota de código em SGLang por SSTI em modelos Jinja2 dentro de arquivos GGUF
Imagem gerada com IA.

A sequência pela qual um atacante consegue executar o seu código é simples nas suas etapas: primeiro cria um ficheiro GGUF com um modelo maliciosa dentro de tokenizer.chat_template; esse template inclui a frase gatilho que faz com que a localização vulnerável no código- fonte - por exemplo no ficheiro entrypoints/openai/serving_rerank.py— se active; uma vez que uma vítima descarrega e carrega esse modelo em SGLang e se realiza uma chamada ao endpoint de reranking, o motor de modelos renderiza o conteúdo e a payload SSTI é executado, provocando execução remota de código. Esta técnica explora uma má configuração do motor de modelos: é utilizado o jinja2.Environment () sem o sandbox apropriado em vez de uma variante segura.

O pesquisador Stuart Beck É quem deu com esta falha e a notificou; sua análise aponta diretamente para o uso de um ambiente de Jinja2 sem proteção. Para entender por que isso é perigoso convém olhar para propostas e ataques anteriores: não é a primeira vez que uma biblioteca de inferência ou um carregador de modelos é exposto por permitir a inserção e renderização de modelos não confiáveis. Um caso muito conhecido foi o apodado "Llama Drama" (CVE-2024-34359), que também permitia execução arbitrária de código e foi qualificado com uma gravidade muito alta, e mais recentemente foram corrigidas superfícies similares em projetos como vLLM (CVE-2025-61620). Informações técnicas sobre esses CVE podem ser consultadas na base de dados nacional de vulnerabilidades dos EUA. EUA (NVD): CVE-2024-34359 e CVE-2025-61620.

Esse tipo de falhas se enquadra na família de ataques SSTI, bem documentada pela comunidade de segurança. Os modelos de renderização que permitem expressões avaliáveis podem tornar-se vetores de execução se não se isolarem corretamente; OWASP oferece uma explicação clara sobre esta classe de problemas em sua seção dedicada ao Server-Side Template Injection: OWASP — SSTI. Por sua vez, a própria documentação de Jinja2 explica a diferença entre os ambientes normais e os ambientes "sandbox" pensados para limitar o que os modelos podem fazer: Jinja2 — ImmutávelSandboxedEnvironment.

O que podem fazer as equipes que utilizam SGLang? O primeiro e mais contundente é evitar carregar modelos provenientes de origens não verificadas. Os repositórios públicos de modelos, como os disponíveis em Hugging Face, facilitam a experimentação, mas também permitem a distribuição de artefatos maliciosos se não forem validados: Hugging Face. Paralelamente, e como medida técnica imediata, Recomenda-se a substituição do uso de jinja2.Environment () por ImmutableSandboxedEnvironment ou uma alternativa que aplique restrições eficazes ao contexto de execução dos modelos; essa alteração impede que expressões no template disparem a execução de código Python arbitrário.

Embora a recomendação de mudar o ambiente de Jinja2 seja a mais concreta, convém complementar essa correção com práticas defensivas: correr os serviços de inferência com privilégios mínimos, isolá-los em contentores ou ambientes dedicados, limitar o acesso à rede e a recursos críticos, e auditar qualquer modelo baixado antes de integrá-lo em uma instância de produção. Até que exista um adesivo oficial disponível, a prudência exige tratar qualquer modelo recebido de terceiros como potencialmente perigoso.

Alerta crítico CVE-2026-5760 expõe execução remota de código em SGLang por SSTI em modelos Jinja2 dentro de arquivos GGUF
Imagem gerada com IA.

O aviso de CERT/CC aponta ainda que, durante o processo de coordenação, não foi obtida uma solução oficial imediata pelos mantenedores, pelo que a adoção de mitigações locais e controles operacionais é especialmente importante neste momento. Para manter-se informado sobre evoluções, adesivos e análises técnicas, convém seguir fontes oficiais do projeto e dos centros de resposta a incidentes, bem como rever as entradas do NVD e os comunicados da CERT/CC: CERT.

Num ecossistema em que frameworks de alto desempenho para modelos multimodais e LLMs são rapidamente adotados, a capacidade de carregar modelos externos é uma característica poderosa que, no entanto, também introduz uma superfície de ataque crítica se não se projetam barreiras de confiança. A lição prática é clara: não basta confiar no formato do modelo, é preciso controlar como se interpretam e executam seus componentes. A curto prazo, se você administra as instâncias do SGLang evita carregar modelos de fontes não contrastadas, aplicales análise estática quando possível e adapta a configuração do Jinja2 para que use ambientes sandboxed. A médio prazo, a comunidade deve incorporar controlos mais robustos nas bibliotecas que parsem e renderizam dados incluídos em modelos GGUF para que estes vetores não voltem a ser exploráveis.

Se você quiser aprofundar os conceitos técnicos mencionados, consulte a documentação oficial de Jinja2 sobre ambientes seguros, a explicação de OWASP sobre SSTI e as entradas do NVD relacionadas com vulnerabilidades prévias de execução remota em bibliotecas de inferência: os links citados no texto oferecem um bom ponto de partida para entender o alcance e as mitigações deste tipo de ameaças.

Cobertura

Relacionadas

Mas notícias do mesmo assunto.