
Relatório sanitizado e PoC apenas em loopback para CVE-2026-102971, uma resposta de revisão REST do MediaWiki que vaza IDs de usuário do autor de revisões ocultas.
Repórter: Marco Paciaroni (BomboBombone).
A resposta de revisão compatível com RESTBase do MediaWiki poderia incluir o ID numérico de usuário de um autor cujo nome havia sido ocultado. A resposta ainda definia user_text como null e marcava o autor como oculto, mas o ID exposto poderia ser mapeado para uma conta por meio da API pública de consulta de usuários.
Um chamador não autenticado poderia correlacionar um autor de revisão deliberadamente oculto com a conta do autor. A divulgação exige uma revisão cujo campo de autor esteja oculto e um wiki que exponha a rota principal de revisão REST.
O script cria uma página local descartável, oculta o autor de sua nova revisão, compara a resposta REST padrão com a compatibilidade RESTBase habilitada, verifica se a consulta pública local de usuários resolve o ID e limpa o estado da página e da revisão.
Execute-o apenas contra uma instância de teste do MediaWiki isolada em loopback. Ele recusa hosts que não sejam loopback e exige uma flag de confirmação explícita. Ele solicita a senha da conta de teste em vez de aceitá-la na linha de comando.
python poc.py --base http://127.0.0.1:8080 --username LocalAdmin --confirm-local-test
A conta precisa de permissão para editar uma página descartável e ocultar o autor de sua revisão (suppressrevision).