CVE-2025-55854 - Vulnerabilidade de Cross-Site Scripting (XSS) Armazenado
Visão Geral da Vulnerabilidade
ID CVE: CVE-2025-55854
Tipo de Vulnerabilidade: Cross-Site Scripting (XSS) Armazenado
Severidade: Alta
Componente Afetado: Campo Bio do Perfil do Usuário
Aplicação Afetada: FreelanceHub (https://github.com/nooncarlett/FreelanceHub)
Descrição
Uma vulnerabilidade de Cross-Site Scripting (XSS) armazenado foi descoberta na funcionalidade de perfil do usuário da aplicação FreelanceHub. A vulnerabilidade existe devido à sanitização insuficiente de entrada no campo Bio, permitindo que atacantes injetem código JavaScript malicioso que é executado quando outros usuários visualizam a página de perfil afetada.
Esta vulnerabilidade permite que um atacante:
- Execute JavaScript arbitrário no contexto dos navegadores de outros usuários
- Roube tokens de sessão e cookies
- Realize ações em nome de usuários autenticados
- Redirecione usuários para sites maliciosos
- Desfigure a interface da aplicação
Versões Afetadas
- FreelanceHub (todas as versões anteriores ao patch)
- Testado em: implantação localhost executando na porta 8080
Detalhes Técnicos
Causa Raiz
A aplicação não sanitiza adequadamente a entrada do usuário no campo Bio antes de armazená-la no banco de dados e renderizá-la na página de perfil. O HTML é renderizado diretamente sem escapar caracteres especiais ou remover tags potencialmente perigosas e manipuladores de eventos.
Vetor de Ataque
- Tipo de Ataque: XSS Armazenado
- Vetor de Entrada: Campo Bio do Perfil do Usuário
- Contexto de Execução: Qualquer usuário que visualize o perfil do atacante
- Autenticação Necessária: Sim (o atacante precisa de uma conta válida)
Prova de Conceito
Pré-requisitos
- Instância em execução da aplicação FreelanceHub
- Navegador web (Chrome, Firefox, Edge, etc.)
- Acesso para criar uma conta de usuário
Reprodução Passo a Passo
Passo 1: Criar uma Nova Conta
- Navegue até
http://localhost:8080/auth
- Cadastre-se para uma nova conta de usuário usando credenciais válidas
- Complete o processo de registro e faça login

Passo 2: Navegar até a Página de Perfil
- Após o login bem-sucedido, navegue até
http://localhost:8080/profile
- Localize o campo Bio no formulário de edição do perfil
Passo 3: Injetar o Payload XSS
- No campo Bio, insira o seguinte payload:
- Clique no botão Salvar ou Atualizar Perfil
- Aguarde a confirmação de que o perfil foi atualizado
Passo 5: Acionar o XSS
- Visite ou recarregue a página de perfil:
http://localhost:8080/profile
- A caixa de alerta JavaScript será executada automaticamente
- Resultado: O código JavaScript é executado com sucesso, confirmando a vulnerabilidade de XSS armazenado
Comportamento Esperado
A aplicação deve sanitizar a entrada e:
- Remover todas as tags HTML do campo Bio
- Codificar caracteres especiais (
<, >, ", ', etc.)
- Implementar cabeçalhos de Política de Segurança de Conteúdo (CSP)
Comportamento Real
O payload HTML/JavaScript malicioso é armazenado no banco de dados e executado quando a página de perfil é renderizada, sem qualquer sanitização ou codificação.
Avaliação de Impacto
Severidade: ALTA
Pontuação CVSS v3.1: 8.1 (Alta)
String do Vetor: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
Impacto no Mundo Real
- Sequestro de Sessão: Atacantes podem roubar tokens de sessão e se passar por usuários
- Roubo de Credenciais: Scripts maliciosos podem criar formulários de login falsos para capturar credenciais
- Exfiltração de Dados: Dados sensíveis do usuário podem ser enviados para servidores controlados pelo atacante
- Distribuição de Malware: Usuários podem ser redirecionados para sites maliciosos
- Ataques de Phishing: O domínio confiável pode ser usado para hospedar conteúdo de phishing convincente
- Assunção de Conta: Combinada com outras vulnerabilidades, isso pode levar ao comprometimento total da conta