Um SVG montado e enviado ao Bing Image Search executou comandos como NT AUTHORITY\SYSTEM nos workers de processamento de imagens em produção da Microsoft e como root nas máquinas Linux do mesmo conjunto.
Os testes da XBOW chegaram ao mesmo resultado em workers de diferentes servidores e faixas de rede, o que mostrou que o problema estava na camada de imagens do Bing, e não em uma única máquina com defeito.
A Microsoft emitiu dois CVEs críticos,
CVE-2026-32194
e
CVE-2026-32191
, e atribuiu nota 9,8 a ambos na escala CVSS.
A XBOW, startup de segurança ofensiva autônoma, encontrou as duas falhas e as reportou de forma privada.
Não há patch nem mitigação para os usuários do Bing aplicarem: a Microsoft corrigiu os problemas no lado do servidor antes da publicação dos avisos, em março, e os registros informam que “não há ação do cliente necessária para resolução”.
Nenhum dos avisos registrava exploração ou divulgação pública quando foram publicados em 19 de março.
A XBOW divulgou os detalhes do exploit em 23 de julho, após retê-los a pedido da Microsoft até que a correção estivesse implantada.
O que permanece depois da correção é a natureza da falha.
A aplicação acreditava estar lidando com uma imagem, mas o componente auxiliar abaixo dela interpretava parte dessa imagem como um comando.
Se a sua própria estrutura encaminha uploads ou URLs buscadas pelo servidor por meio do ImageMagick ou de qualquer solução compatível com ImageMagick, a exposição depende de o conteúdo controlado pelo atacante ainda conseguir alcançar um caminho com delegates habilitados.
Se os delegates forem bloqueados, os formatos aceitos forem reduzidos e o worker ficar fora da rede, o mesmo SVG não fará nada.
A busca reversa de imagens do Bing recupera uma URL de imagem no backend, porque essa é a função do recurso.
Por si só, isso é um SSRF cego: nada retorna ao cliente.
O sinal estava no erro.
Alguns workers devolviam um erro 500 ao navegador e ainda assim buscavam e analisavam o que haviam recebido, o que indicava que havia algo mais abaixo na cadeia fazendo o processamento.
O SVG respondeu à pergunta.
Ele é XML, e não pixels: pode referenciar outras imagens, e um renderizador que segue essas referências as busca.
Por baixo, conjuntos de conversão repassam formatos que não processam diretamente para um delegate, um programa externo invocado por meio de um shell.
No caminho alcançado pela XBOW, essa camada ainda estava habilitada, então uma referência de imagem que começava com o caractere pipe foi enviada ao shell em vez de ser lida como nome de arquivo.
O payload era um SVG de um pixel, cuja referência executava um comando no worker e enviava a saída de volta para um coletor controlado pela XBOW.
Isso abriu dois caminhos para a mesma camada de conversão e gerou dois CVEs.
CVE-2026-32194
, registrado como injeção de comando sob CWE-77, envolve o envio público de “Search by Image”, com o SVG entrando em base64 no campo imageBin para /images/kblob.
CVE-2026-32191
, registrado como injeção de comando do sistema operacional sob CWE-78, é a rota do rastreador: hospeda-se o SVG em qualquer lugar, passa-se a URL na busca pelo parâmetro imgurl, e o bingbot/2.0 o busca dentro do mesmo pipeline.
Nenhum dos dois exige autenticação, cookies, estado de sessão ou clique.
O The Hacker News conferiu os registros dos dois CVEs em 24 de julho.
Ambos ainda exibem o status da Microsoft de março, sem divulgação pública, já superado pelo texto da XBOW, e a Microsoft continua listando os casos como não explorados.
A prova precisava sair por outro canal.
A interface podia retornar erro enquanto o worker executava o comando mesmo assim.
Os workers Linux retornaram uid=0 e gid=0.
No Windows, o comando systeminfo identificou o Windows Server 2022 Datacenter, o whoami /all mostrou SeImpersonatePrivilege e SeDebugPrivilege habilitados, e listagens de diretório indicaram que a execução ocorria dentro dos componentes de processamento de imagens multimídia do Bing.
A empresa afirma que executou apenas comandos benignos, de leitura, e não acessou dados de clientes.
Chegar a esse caminho exigiu dezenas de tentativas.
Os pseudo-protocolos do ImageMagick se comportaram de forma diferente conforme o codificador: label: renderizava texto e xc: produzia uma imagem colorida, enquanto text:, caption: e leituras diretas de arquivo falharam.
Metacaracteres de shell dentro de label: eram renderizados como texto, e não executados, o que descartou esse codificador.
O caminho que de fato alcançava um delegate era a referência de imagem dentro do próprio SVG.
Desative os delegates
Um worker de processamento de imagens que lida com arquivos não confiáveis não deveria acessar um shell, executar como SYSTEM nem ter saída para a internet.
O pipeline do Bing fazia os três.
A documentação do próprio ImageMagick é explícita ao dizer que a política padrão é aberta e foi pensada para uso em sandbox ou atrás de firewall, não para um site público.
Para qualquer ambiente que processe imagens não confiáveis, negue delegates de forma direta no policy.xml:
<policy domain="delegate" rights="none" pattern="*" >
Depois disso, em ordem de impacto:
Reduza os formatos aceitos.
SVG, MVG e EPS estão entre os que carregam referências e interpretadores.
Revise o delegates.xml e desative tudo o que estiver habilitado e não for necessário.
Execute a conversão em sandbox e com privilégios reduzidos.
Bloqueie o tráfego de saída do worker, que foi o elo que transformou uma falha cega em uma falha comprovada.
Permita apenas os destinos que uma busca feita pelo servidor pode alcançar e mantenha o worker fora de endereços internos.
A orientação do ImageMagick é testar após qualquer mudança de política, e o comando magick identify -list policy exibe o que está realmente carregado.
O ImageTragick, a injeção de comando por delegate de 2016 registrada como
CVE-2016-3714
, é a mesma classe de falha, e ela continua reaparecendo porque ninguém trata o conversor como parte da superfície de ataque.
O CISO da XBOW, Nico Waisman, que escreveu a divulgação, resumiu assim: “As aplicações tratam os auxiliares de imagem como encanamento.
Os atacantes os tratam como parsers.”
A busca era acessível, não retornava nada e parecia um beco sem saída.
O que a transformou em um shell com privilégios de SYSTEM foi o parser por trás dela, e nada na resposta teria revelado isso.
Publicidade
Vibecoding cria 10x mais sistemas, 20x mais vulneráveis. E quem ganha com isso é a galera do hacking ético e pentest. Quer ser pago para invadir sistemas? Então você tem que aprender com a Solyd que são os melhores do Brasil. Saiba mais...