BRECHA no Framework Krpano
27 de Fevereiro de 2025

Uma vulnerabilidade de cross-site scripting (XSS) em uma framework de tour virtual foi armada por atores maliciosos para injetar scripts maliciosos em centenas de sites com o objetivo de manipular resultados de busca e alimentar uma campanha de spam em larga escala.

O pesquisador de segurança Oleg Zaytsev, em um relatório compartilhado, disse que a campanha - batizada de 360XSS - afetou mais de 350 sites, incluindo portais governamentais, sites de governos estaduais dos EUA, universidades americanas, grandes redes de hotéis, veículos de imprensa, concessionárias de carros e várias empresas Fortune 500.

"Não foi apenas uma operação de spam", disse o pesquisador.

Foi um abuso em escala industrial de domínios confiáveis.

Todos esses sites têm algo em comum: uma framework popular chamada Krpano que é usada para incorporar imagens e vídeos em 360° para facilitar tours virtuais interativos e experiências de realidade virtual (VR).
Zaytsev disse que se deparou com a campanha após encontrar um anúncio relacionado à pornografia listado no Google Search, mas com um domínio associado à Universidade de Yale ("virtualtour.quantuminstitute.yale[.]ed").

Um aspecto notável dessas URLs é um parâmetro XML que é projetado para redirecionar o visitante do site para uma segunda URL que pertence a outro site legítimo, que é então usado para executar um payload codificado em Base64 por meio de um documento XML.

O payload decodificado, por sua parte, busca a URL alvo (ou seja, o anúncio) de mais um site legítimo.
O parâmetro XML passado na URL original servida nos resultados de pesquisa é parte de uma configuração mais ampla chamada "passQueryParameters" que é usada ao incorporar um visualizador de panorama Krpano em uma página HTML.

Ele é especificamente projetado para passar parâmetros HTTP da URL para o visualizador.

O problema de segurança aqui é que, se a opção estiver habilitada, abre a porta para um cenário em que um atacante poderia usar uma URL especialmente criada para executar um script malicioso no navegador da web da vítima quando o site vulnerável é visitado.

De fato, uma falha de XSS refletido resultante desse comportamento foi divulgada no Krpano no final de 2020 ( CVE-2020-24901 , pontuação CVSS: 6.1), indicando que o potencial de abuso é publicamente conhecido há mais de quatro anos.

Embora uma atualização introduzida na versão 1.20.10 tenha restringido o "passQueryParameters" a uma lista de permissões em uma tentativa de evitar tais ataques XSS, Zaytsev descobriu que adicionar explicitamente o parâmetro XML à lista de permissões reintroduzia o risco de XSS.

"Desde a versão 1.20.10, a instalação padrão do Krpano não estava vulnerável", disse o pesquisador.

No entanto, configurar passQueryParameter em combinação com o parâmetro XML permitia configuração externa de XML via URL, levando a um risco de XSS.

As versões exploradas que encontrei eram principalmente antigas, anteriores à versão 1.20.10.

A campanha, segundo Zaytsev, aproveitou essa fraqueza para sequestrar mais de 350 sites para veicular anúncios duvidosos relacionados a pornografia, suplementos para dietas, cassinos online e sites de notícias falsas.

Além disso, algumas dessas páginas foram armadas para aumentar as visualizações de vídeos no YouTube.

A campanha é notável, não apenas por abusar da confiança e credibilidade de domínios legítimos para aparecer proeminentemente nos resultados de busca, uma técnica chamada envenenamento de otimização para mecanismos de busca (SEO), que, por sua vez, é realizado abusando da falha XSS.

"Um XSS refletido é uma vulnerabilidade divertida, mas por si só requer interação do usuário, e um dos maiores desafios é fazer as pessoas clicarem no seu link de XSS refletido," disse Zaytsev.

Então, usar motores de busca como uma plataforma de distribuição para o seu XSS é uma maneira muito criativa e legal de fazer isso.

Após a divulgação responsável, o último lançamento do Krpano elimina o suporte para configuração externa via o parâmetro XML, mitigando assim o risco de ataques XSS mesmo quando a configuração é utilizada.

"Segurança de passQueryParameters do embedpano() aprimorada: URLs de dados e URLs externas geralmente não são mais permitidas como valores de parâmetros e as URLs para o parâmetro XML são limitadas a estar dentro da estrutura de pastas atual," de acordo com as notas de lançamento para a versão 1.22.4 lançada esta semana.

Atualmente, não se sabe quem está por trás da operação massiva, embora o abuso de uma falha de XSS para servir apenas redirecionamentos, ao invés de realizar ataques mais nefastos como roubo de credenciais ou cookies, levante a possibilidade de uma agência de publicidade com práticas questionáveis que está veiculando esses anúncios como uma estratégia de monetização.

Usuários do Krpano são aconselhados a atualizar suas instalações para a versão mais recente e definir o ajuste "passQueryParameters" para falso.

Proprietários de sites afetados são recomendados a encontrar e remover páginas infectadas via Google Search Console.

Publicidade

Traçamos um caminho para você ir do zero ao avançado em hacking

Conheça a Solyd One, e tenha acesso a todos os cursos de segurança ofensiva da Solyd, todas as certificações práticas, incluindo a SYCP, 2 CTFs anuais com prêmios de até 30 mil reais, dezenas de laboratórios realísticos, suporte, comunidade e muito mais. Saiba mais...