Uma nova análise conduzida por Michael Stepankin (@artsploit), pesquisador do GitHub Security Lab (GHSL), revelou uma vulnerabilidade crítica no pac4j, um popular framework de segurança amplamente utilizado em aplicativos Java. Essa vulnerabilidade, rastreada como CVE-2023-25581, foi classificada com uma pontuação CVSS de 9,2, refletindo sua gravidade, e pode permitir que atacantes executem código arbitrário em sistemas comprometidos, resultando em uma potencial Execução Remota de Código (RCE).
O pac4j foi desenvolvido para simplificar a autenticação e autorização em aplicativos Java, oferecendo um conjunto robusto de ferramentas que visam proteger aplicativos web e serviços. No entanto, a pesquisa de Stepankin destacou uma falha significativa nas versões anteriores à 4.0.0 da estrutura, que compromete sua segurança.
A vulnerabilidade está relacionada à maneira como o pac4j lida com os atributos de perfis de usuários. Conforme explicado por Stepankin, a falha está no método org.pac4j.core.profile.InternalAttributeHandler#restore, que desserializa dados não confiáveis. Em outras palavras, a estrutura não valida adequadamente objetos Java serializados que são armazenados nos perfis de usuário, abrindo uma perigosa porta para explorações.
Essa falha pode ser explorada quando um invasor injeta um objeto serializado malicioso, codificado em Base64 e prefixado com {#sb64}, em um atributo de perfil de usuário. Quando o método de restauração processa esse atributo, ele desserializa o objeto, permitindo a execução de código arbitrário no servidor vulnerável. Stepankin alerta: “É possível enganar o sistema para desserializar uma classe Java arbitrária”, o que coloca a infraestrutura de qualquer aplicativo afetado em risco.
Embora o pac4j-core utilize o RestrictedObjectInputStream para restringir os tipos de objetos que podem ser desserializados, essas restrições não são suficientes para impedir completamente a exploração. Segundo Stepankin, “ele ainda permite uma ampla gama de pacotes Java que podem ser explorados por cadeias de gadgets maliciosos.” Isso significa que invasores habilidosos podem explorar diferentes tipos de objetos permitidos, obtendo assim acesso à execução remota de código e controlando potencialmente o sistema afetado.
A Execução Remota de Código (RCE) é uma das consequências mais graves dessa vulnerabilidade, pois pode permitir que atacantes assumam o controle do sistema, executando comandos de sua escolha. As consequências podem variar desde o roubo de dados confidenciais até a interrupção completa do serviço, ou até mesmo a expansão do ataque a outras partes da rede.
A boa notícia para os usuários é que as versões 4.0.0 e posteriores do pac4j não são afetadas por essa vulnerabilidade. A equipe do GitHub Security Lab, juntamente com Stepankin, recomenda fortemente que todos os usuários de versões anteriores façam uma atualização imediata para as versões corrigidas. A atualização é essencial para proteger aplicativos de ataques que possam explorar essa falha grave.
Em resumo, a vulnerabilidade CVE-2023-25581 serve como um lembrete crítico da importância de manter frameworks e bibliotecas de segurança sempre atualizados. O uso de versões desatualizadas do pac4j pode colocar aplicativos em risco, comprometendo sua integridade e segurança. Além da atualização, os desenvolvedores também devem revisar suas políticas de serialização e desserialização de dados, garantindo que essas operações sejam tratadas com o máximo cuidado para evitar futuras explorações.
Falha crítica no better-auth permite criar API keys sem autenticação para usuários arbitrários, com risco…
Graphite, spyware ligado à Paragon, volta ao foco com evidências forenses de ataques zero-click a…
Nova campanha SmartLoader manipula a confiança em repositórios e diretórios de MCP para distribuir StealC.…
A CISA incluiu o CVE-2024-7694 no catálogo KEV após confirmação de exploração em ambiente real.…
Relatório da Dragos indica que operadores ligados à China mantiveram acesso persistente a redes de…
Campanha de phishing com falso e-mail da SSA desativa proteções do Windows e instala ScreenConnect…