
Relatório e prova de conceito para CVE-2026-96878, um XSS armazenado nos aliases de campo Exhibit do MediaWiki Cargo, com notas de validação e referências à correção upstream.
Repórter: Marco Paciaroni (BomboBombone).
O renderizador Exhibit do Cargo inseria aliases de campo em sua apresentação HTML sem codificá-los para contextos de texto e de atributo. Um editor de página podia persistir uma consulta cujos aliases eram interpretados como marcação quando a página era visualizada.
O registro da CVE identifica o Cargo até a versão 3.9.4 como afetado.
O cenário relatado exigia o formato Exhibit, permissão para editar uma página exibida a outros usuários e uma consulta com múltiplos campos. A execução de script ocorria na origem do wiki para os visitantes daquela página.
O relatório original registra execução no navegador a partir de uma visualização Exhibit em uma instância local do MediaWiki. Um alias comum não produzia nenhum elemento portador de evento.
A alteração upstream constrói a apresentação Exhibit com helpers HTML que codificam o texto dos aliases e os valores de atributo em seus respectivos contextos.
python poc.py TABLE FIELD_ONE FIELD_TWO
O script imprime uma consulta Cargo Exhibit com um marcador DOM inofensivo. Adicione-a apenas a uma página de teste que você está autorizado a editar, observe a visualização Exhibit renderizada e remova-a em seguida.
A descrição pública da CVE atualmente classifica este problema como XSS refletido. O relatório submetido descreve uma consulta persistida em conteúdo de página editável e acionada por uma visualização posterior da página. Este relatório descreve esse cenário armazenado sem alterar o registro da CVE.