Categories: ALERTAS

Falha crítica no framework de segurança Java ‘pac4j’ expõe vulnerabilidade RCE (CVE-2023-25581)

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.

Detalhes da Vulnerabilidade (CVE-2023-25581)

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.

Mecanismo de Exploração e Limitações

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.

Medidas de Mitigação e Recomendações

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.

Ninja

Na cena de cybersecurity a mais de 25 anos, Ninja trabalha como evangelizador de segurança da informação no Brasil. Preocupado com a conscientização de segurança cibernética, a ideia inicial é conseguir expor um pouco para o publico Brasileiro do que acontece no mundo.

Share
Published by
Ninja

Recent Posts

Vulnerabilidade crítica no servidor MCP do GitHub permite acesso não autorizado a repositórios privados

Falha permite que invasores manipulem o agente de um usuário por meio de um problema…

7 dias ago

Suposto 0-Day da Fortinet está à venda em cantos obscuros da web

Um exploit de dia zero, dirigido aos firewalls FortiGate da Fortinet, foi descoberto à venda…

2 meses ago

Pesquisadores descobrem a família de malware Shelby que abusa do GitHub para comando e controle

A família SHELBY mostra um exemplo preocupante de malware moderno com design modular, sofisticado e…

2 meses ago

Hackers abusam de plugins MU do WordPress para esconder código malicioso

Hackers estão explorando o diretório mu-plugins do WordPress para injetar códigos maliciosos que não aparecem…

2 meses ago

Google lança duas novas ferramentas de IA para detectar golpes conversacionais em dispositivos Android

O Google implementou uma nova funcionalidade de "Detecção de Golpes" com inteligência artificial no aplicativo…

3 meses ago

APT28 aprimora técnicas de ofuscação com trojans HTA avançados

O grupo APT28, ligado à Rússia, está utilizando técnicas avançadas de ofuscação em seus ataques…

3 meses ago