
Prova de conceito para CVE-2026-25126 demonstrando a manipulação da contagem de votos no PolarLearn por meio de validação inadequada em tempo de execução do parâmetro de direção do voto no fórum, com detalhes da correção.
Pesquisa: Joshua van Rijswijk
PoC para CVE-2026-25126, uma vulnerabilidade de lógica de negócio de alta gravidade na API de votação do fórum PolarLearn.
O endpoint POST /api/v1/forum/vote não aplica validação estrita em tempo de execução do campo direction.
Como os tipos TypeScript não são aplicados em tempo de execução, um atacante pode enviar strings arbitrárias que são tratadas incorretamente downstream.
Isso permite a manipulação das contagens de votos ao criar os chamados downvotes fantasmas.
A API confia no corpo JSON sem validação:
const body: VoteRequestBody = await request.json()
const { postId, direction } = body
const result = await VoteServer(postId, direction)
A lógica downstream trata qualquer valor inesperado não nulo como um downvote e persiste valores inválidos.
Ao alternar um voto inválido com um reset nulo, um único usuário pode decrementar repetidamente a contagem de votos.
fetch)git clone https://github.com/<seu-usuario>/CVE-2026-25126-PoC.git
cd CVE-2026-25126-PoC
Abra poc.js e substitua:
POST_ID pelo ID do post do fórum alvoCOOKIE pelo seu cookie de sessão autenticadanode poc.js
Após cada ciclo, a contagem de votos deve diminuir incorretamente. Atualize a página do fórum para confirmar a pontuação manipulada.
Corrigido implementando validação estrita em tempo de execução:
"up", "down" ou null