CVE-2026-9733: Plugin OAuth2 do Mojolicious para Perl: parâmetro state previsível por padrão (CWE-338)
O plugin Mojolicious::Plugin::Web::Auth::OAuth2 para Perl, nas versões até 0.17, gera por padrão um valor state do OAuth2 a partir de fontes de baixa entropia quando nenhum gerador é configurado. Um state previsível pode viabilizar CSRF em fluxos OAuth2. A CNA informa pontuação CVSS 3.1 de 9.1; o registro não mostra inclusão no catálogo KEV e não há exploração confirmada nas fontes consultadas.
Visão geral
O registro descreve o Mojolicious::Plugin::Web::Auth::OAuth2 para Perl, um plugin do framework web Mojolicious que trata fluxos de autorização OAuth2. Quando nenhum gerador de state é definido no construtor, o plugin recorre a um hash SHA-1 construído a partir de entradas previsíveis e de baixa entropia, incluindo o tempo epoch exposto pelo cabeçalho HTTP Date e a função rand nativa do Perl. O registro classifica a fraqueza como CWE-338, uso de gerador pseudoaleatório fraco.
Impacto
O registro afirma que um valor state previsível permite que um atacante sequestre a sessão de outro usuário por meio de cross-site request forgery. O parâmetro state deve vincular a resposta de autorização à sessão que a iniciou; um valor adivinhável enfraquece essa proteção. A CNA atribui pontuação CVSS 3.1 base 9.1, com vetor de rede, baixa complexidade, sem privilégios exigidos e sem interação do usuário, além de alto impacto em confidencialidade e integridade.
Produtos e versões afetados
- A descrição indica o Mojolicious::Plugin::Web::Auth::OAuth2 para Perl nas versões até a 0.17.
- A lista estruturada de itens afetados no registro está vazia, então a faixa exata de versões é apenas a que consta na descrição.
- O registro não informa versão corrigida.
- O registro referencia um arquivo de patch para a versão 0.17 hospedado no site de segurança do MetaCPAN. O registro não diz se esse patch é a correção oficial nem o que ele altera.
Status de exploração
O registro mostra que a CVE não consta no catálogo KEV da CISA. Não há exploração confirmada nas fontes consultadas. O registro não traz pontuação EPSS.
Correção e mitigação
- Mapeie as aplicações que usam este plugin na versão 0.17 ou anterior, incluindo dependências indiretas.
- Configure um gerador de state explícito, baseado em fonte aleatória criptograficamente segura e com alta entropia, em vez de depender do padrão.
- Analise o patch referenciado e consulte a página de releases do plugin para identificar uma versão que o mantenedor indique como corrigida antes de atualizar.
- Confirme que a aplicação valida o state em todo callback OAuth2 e rejeita respostas que não correspondam à sessão.
Orientações de detecção
- Revise os logs de callbacks OAuth2 em busca de respostas cujo state não corresponda a uma requisição pendente na sessão do usuário.
- Observe rajadas de callbacks de autorização que o usuário não iniciou, o que pode indicar requisições forjadas.
- Mantenha a versão do plugin visível nos inventários de software para localizar rapidamente as implantações afetadas.
Limitações das informações disponíveis
- O registro não tem faixa estruturada de versões afetadas, versão corrigida nem status confirmado de patch.
- O nome da CWE está nulo no registro e o status da fonte é Deferred.
- Dados EPSS e SSVC estão ausentes.
- O registro não diz se aplicações que fornecem seu próprio gerador de state são afetadas.
- Não havia teste independente nem análise de fornecedor além das referências listadas.
Referências: entrada no NVD, código-fonte no MetaCPAN, publicação na lista oss-security.
Perguntas frequentes
Esta vulnerabilidade foi confirmada como explorada na natureza?
Não. O registro mostra que a CVE não consta no catálogo KEV da CISA e não há exploração confirmada nas fontes consultadas.
Quais versões são afetadas?
A descrição cita versões até a 0.17 do Mojolicious::Plugin::Web::Auth::OAuth2 para Perl. A lista estruturada de itens afetados está vazia, então não há faixa mais precisa.
Existe versão corrigida?
O registro não informa versão corrigida. Ele referencia um arquivo de patch para a versão 0.17, mas não confirma o efeito do patch, então o status de correção deve ser considerado desconhecido.
Esta análise foi redigida com auxílio de IA a partir de dados verificados das fontes e checada automaticamente contra eles.