CVE-2024-0710
- Vulnerabilidade: CVE-2024-0710 (Modificação Não Autenticada do ID Único de Submissão de Formulário)
- CVSS: 5.3 (Médio)
- Software: GP Unique ID (gp-unique-id)
- Versões afetadas: <= 1.5.5
- Versão corrigida: 1.5.6
- Desenvolvedor: Gravity Wiz
- Pesquisador: Karl Emil Nikka, Nikka Systems
- Publicado publicamente: 2024-04-10
- Última atualização: 2024-04-18
Visão geral
Um submissor de formulário não autenticado pode escolher um valor personalizado para um campo que deveria sempre ter um valor aleatório ou sequencial. Esta vulnerabilidade afeta apenas sites onde o valor deve ser aleatório ou sequencial por razões legais, funcionais ou de segurança.
Contexto
GP Unique ID é um complemento para o Gravity Forms. Ele atribui IDs únicos às entradas após a submissão bem-sucedida. Ao contrário dos IDs reais do banco de dados das entradas, os GP Unique IDs, doravante chamados GPUIDs, podem ser personalizados pelo criador do formulário para seguir uma sintaxe específica com número inicial definido, conjunto de caracteres, comprimento, prefixo e sufixo. O GPUID é armazenado em um campo personalizado de entrada do Gravity Forms. O campo fica oculto no frontend.
O desenvolvedor do plugin lista os seguintes casos de uso comuns para o GP Unique ID.
- Fornecer um número de confirmação ou referência de comprimento fixo para cada entrada.
- Manter um número de fatura sequencial.
- Gerar um código de cupom único que pode ser usado em submissões subsequentes de formulários.
- Gerar um número único para uso em sorteios.
A vulnerabilidade
O GP Unique ID atribui o GPUID após o formulário ter sido submetido com sucesso, mas apenas enquanto não houver um valor já no campo. Isso permite que um submissor de formulário defina um GPUID personalizado ao submeter o formulário. Como o campo não está vazio, nenhum GPUID real é armazenado. Portanto, um visitante pode
- definir um GPUID que não segue a sintaxe
- definir um GPUID que não é sequencial
- definir um GPUID que não é aleatório
- definir um GPUID que já está atribuído a outra entrada.
Correções
O Gravity Wiz lançou uma versão corrigida do plugin em 2024-04-09. Os administradores do site devem atualizar para a versão corrigida (1.5.6) e, se relevante, garantir que as submissões anteriores não foram adulteradas.
- 2024-01-13 Reportei a vulnerabilidade ao Gravity Wiz (de acordo com a política de divulgação responsável de 90 dias do Project Zero).
- 2024-01-13 Submeti a vulnerabilidade ao CNA da Wordfence. Recusei participar do programa de bug bounty deles.
- 2024-01-15 O Gravity Wiz confirmou que recebeu o relatório.
- 2024-01-16 O Gravity Wiz reconheceu a vulnerabilidade e me informou que lançaria uma correção para ela.
- 2024-01-19 A Wordfence atribuiu à vulnerabilidade o ID CVE CVE-2024-0710.
- 2024-02-29 Enviei um lembrete de 45 dias ao Gravity Wiz.
- 2024-04-01 Enviei um lembrete de que a janela de divulgação responsável de 90 dias terminaria em duas semanas.
- 2024-04-07 O Gravity Wiz me enviou uma versão pré-lançamento do plugin corrigido.
- 2024-04-09 O Gravity Wiz lançou o plugin corrigido, 87 dias após o relatório inicial (dentro da janela de divulgação responsável de 90 dias).