Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-27621 — CVE-2026-27621 - TypiCMS Core has Stored Cross-Site Scripting (XSS) via SVG File Upload | Kitploit
Ferramentas/GitHubGitHub/lukasz-rybak/cve-2026-27621
Vulnerability AnalysisWeb Application ExploitationWeb SecurityPapers & ResearchLearning & Education
GitHublukasz-rybak/cve-2026-27621

CVE-2026-27621

CVE-2026-27621 - TypiCMS Core has Stored Cross-Site Scripting (XSS) via SVG File Upload

Ver Repositório
há 4 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2026-27621: TypiCMS Core possui Cross-Site Scripting (XSS) Armazenado via Upload de Arquivo SVG

Visão Geral

CampoDetalhes
ID do CVECVE-2026-27621
SeveridadeMÉDIA
AvisoVer Aviso
Descoberto porLukasz Rybak

Produtos Afetados

  • typicms/core (versões: < 16.1.7)

Classificação CWE

  • CWE-79: Neutralização Incorreta de Entrada Durante a Geração de Páginas Web ('Cross-site Scripting')

Detalhes

I. Resumo

Existe uma vulnerabilidade de Cross-Site Scripting (XSS) Armazenado no módulo de upload de arquivos do TypiCMS. A aplicação permite que usuários com permissões de upload de arquivos enviem arquivos SVG. Embora haja uma validação de tipo MIME, o conteúdo do arquivo SVG não é sanitizado. Um atacante pode enviar um arquivo SVG especialmente criado contendo código JavaScript malicioso. Quando outro usuário (como um administrador) visualiza ou acessa esse arquivo através da aplicação, o script é executado no navegador dele, levando a um comprometimento da sessão desse usuário.

O problema é agravado por um bug na lógica de parsing SVG, que pode causar um erro 500 se o SVG enviado não contiver um atributo viewBox. No entanto, isso não mitiga a vulnerabilidade XSS, pois um atacante pode facilmente incluir um atributo viewBox válido em seu payload malicioso.

II. Detalhes da Vulnerabilidade

  • Tipo de Vulnerabilidade: Cross-Site Scripting (XSS) Armazenado (CWE-79)
  • Componente Afetado: TypiCMS\Modules\Core\Http\Requests\FileFormRequest.php e TypiCMS\Modules\Core\Services\FileUploader.php.
  • Versões Afetadas: <= 16.0.5

A vulnerabilidade decorre de dois pontos principais:

  1. Validação Permissiva de Arquivos: O FileFormRequest explicitamente lista svg como um tipo MIME permitido para uploads.
  2. Falta de Sanitização de Conteúdo: O serviço FileUploader salva o arquivo SVG no servidor sem analisar e sanitizar seu conteúdo para remover elementos potencialmente maliciosos, como tags <script> ou manipuladores de eventos on*.

Quando o disco do sistema de arquivos padrão está definido como public, o arquivo SVG enviado é armazenado em um diretório de acesso público, tornando trivial acessar o arquivo via URL direta e acionar o payload XSS.

III. Prova de Conceito (PoC)

  1. Criar um Arquivo SVG Malicioso: Crie um arquivo chamado malicious.svg com o seguinte conteúdo. O atributo viewBox está incluído para contornar o bug de parsing da aplicação.

    root@kitploit:~
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
        <script>
            // Uma PoC simples para demonstrar a vulnerabilidade
            alert('XSS no TypiCMS! Seu cookie de sessão é: ' + document.cookie);
        </script>
        <text x="10" y="50">Se você está vendo isso, o script foi executado.</text>
    </svg>
    
  2. Enviar o Arquivo Malicioso:

    • Faça login no painel de administração do TypiCMS como um usuário com permissões para enviar arquivos.
    • Navegue até o módulo "Arquivos" (ex.: /admin/files).
    • Envie o arquivo malicious.svg. A aplicação aceitará o arquivo e o armazenará. imagem
imagem
  1. Acionar o XSS:
    • A aplicação fornecerá uma URL pública para o arquivo enviado, normalmente no formato http://<seu-site>/storage/files/malicious.svg.
    • Qualquer pessoa que navegar para esta URL terá o JavaScript incorporado executado em seu navegador.
    • Um atacante pode enviar este link para um usuário privilegiado (ex.: um administrador). Quando o administrador clicar no link, os cookies de sessão podem ser roubados, ou o atacante pode realizar ações em nome dele.
imagem imagem

IV. Impacto

A exploração bem-sucedida desta vulnerabilidade permite que um atacante execute JavaScript arbitrário no contexto do navegador da vítima. Embora o uso da flag HttpOnly nos cookies de sessão impeça o roubo direto do ID da sessão via document.cookie, o atacante ainda pode alcançar um comprometimento total da conta da vítima ao realizar ações em nome dela.

O impacto inclui:

  • Tomada de Conta via Falsificação de Ação: O script do atacante pode fazer requisições autenticadas para a API da aplicação a partir do navegador da vítima. Isso permite que o atacante execute qualquer ação que a vítima está autorizada a fazer, como:

    • Criar uma nova conta de administrador para o atacante.
    • Alterar o endereço de e-mail e a senha da vítima.
    • Excluir ou modificar todo o conteúdo, usuários e configurações.
  • Divulgação de Informações Sensíveis: O script pode ler o conteúdo de qualquer página que a vítima visualizar no painel de administração. Isso inclui listas de usuários (com nomes e e-mails), configurações privadas da aplicação e outros dados sensíveis, que podem então ser exfiltrados para um servidor controlado pelo atacante.

  • Phishing e Engenharia Social: O script pode manipular a interface do painel de administração para exibir formulários de login falsos, enganando o usuário para que reinsira suas credenciais, ou redirecioná-lo para um site malicioso.

  • Registro de Teclas: O script pode capturar qualquer informação que a vítima digitar em formulários na página comprometida.

Como o atacante pode realizar qualquer ação como um administrador autenticado, esta vulnerabilidade efetivamente leva a um comprometimento total da aplicação, mesmo sem acesso direto ao cookie de sessão. O risco é Alto.

V. Correções e Mitigações Recomendadas

Recomenda-se aplicar uma abordagem de defesa em profundidade para mitigar esta vulnerabilidade.

  1. Correção Principal: Sanitizar Conteúdo SVG: A solução mais robusta é sanitizar arquivos SVG no momento do upload. Antes de salvar o arquivo, ele deve ser analisado para remover todos os elementos potencialmente perigosos, incluindo tags <script>, <style>, <foreignObject> e todos os atributos de evento on*. Isso pode ser alcançado usando uma biblioteca de sanitização SVG dedicada.

  2. Correção Secundária: Desabilitar Uploads de SVG: Se uploads de SVG não forem um recurso crítico para a aplicação, a solução mais simples e segura é desabilitá-los completamente. Isso pode ser feito removendo 'svg' da lista de tipos MIME permitidos em TypiCMS\Modules\Core\Http\Requests\FileFormRequest.php.

    root@kitploit:~
    // Em FileFormRequest.php
    // ANTES:
    $fileRule = 'mimes:jpeg,gif,png,...,svg,...|max:...';
    
    // DEPOIS:
    $fileRule = 'mimes:jpeg,gif,png,...,pdf,...|max:...'; // 'svg' removido
    
  3. Endurecimento - Política de Segurança de Conteúdo (CSP): Implemente um cabeçalho rigoroso de Política de Segurança de Conteúdo (CSP) para a aplicação. Uma CSP bem configurada pode prevenir a execução de scripts inline, o que mitigaria o impacto desta vulnerabilidade XSS.

  4. Endurecimento - Servir Conteúdo do Usuário de um Domínio Separado: Sirva todos os arquivos enviados pelo usuário a partir de um domínio separado e sem cookies. Esta é uma medida de segurança altamente eficaz que isola o conteúdo gerado pelo usuário da aplicação principal, impedindo que scripts acessem cookies de sessão ou interajam com o DOM da aplicação.

Referências

  • https://github.com/TypiCMS/Core/security/advisories/GHSA-xfvg-8v67-j7wp
  • https://nvd.nist.gov/vuln/detail/CVE-2026-27621
  • https://github.com/TypiCMS/Core/commit/d480a0be1e8e7c0600bb9a325bb11920ee66497d
  • https://github.com/advisories/GHSA-xfvg-8v67-j7wp

Aviso Legal

Este CVE foi divulgado de forma responsável seguindo práticas coordenadas de divulgação de vulnerabilidades. As informações fornecidas aqui são apenas para fins educacionais e defensivos.

Baixar ferramenta