O Simulador de Votação que o Tribunal Superior Eleitoral (TSE) disponibiliza para o eleitor treinar o voto agora carrega um arquivo público com o aplicativo VOTA, o mesmo programa que conduz a votação na urna eletrônica. Na terça-feira (6), o engenheiro de software Igor Alonge descompilou os arquivos da ferramenta e encontrou, além da tela do eleitor, a lógica do boletim de urna, do registro interno dos votos e do terminal do mesário — funções que a página de treino não usava e não estavam disponíveis ao grande público.
A publicação da descoberta aconteceu na rede social X. O “Simulador de Votação” existe desde 2014 e reside no site da Justiça Eleitoral; e a ferramenta também disponibiliza seu código, assim, pesquisadores conseguem aferir o funcionamento da plataforma de votação. O TecMundo entrou em contato com o TSE para esclarecimentos. A descoberta não expõe fragilidade na urna ou processo eleitoral, mas deixava ambígua a intencionalidade do TSE, se ocorreu a publicação dos códigos ou o vazamento dos mesmos, principalmente porque os códigos não eram acessíveis.
“Em 2026 a equipe técnica optou por utilizar a tecnologia WebAssembly. Essa tecnologia permite o uso de software escrito em C++ para integração à plataforma web em navegadores”, explica o TSE. “Com isso, foi possível reutilizar parte do código-fonte do software da urna para a criação do simulador de votação atualmente disponível na internet. Isso foi feito visando a uma reprodução mais fidedigna da experiência de uso da urna por meio do simulador, tais como as telas de votação renovadas, barra de progresso da votação, intérprete de Libras em mais telas, uso ampliado da sintetização de voz, etc. Essa abordagem também será usada futuramente para um simulador específico para o treinamento de mesários”.
O Tribunal também afirma que “é de conhecimento da equipe técnica do TSE que a tecnologia WebAssembly permite que um binário seja desmontado. Foi justamente isso que o Igor Alonge fez. Ciente disso, a equipe técnica buscou restringir o reuso do código-fonte da urna àquilo que era estritamente necessário para o funcionamento do simulador”.
O posicionamento na íntegra pode ser acompanhado ao final da reportagem.
Resumo e impactos
- A reportagem não indica vulnerabilidade ou fragilidade na urna eletrônica e processo eleitoral;
- O TSE possui na internet um simulador de votação para o eleitor treinar o ato;
- Por trás da página existe um arquivo, o vota_web_wasm.wasm, que o navegador baixa e executa;
- Um desenvolvedor abriu esse arquivo e viu que ele não traz só a tela em que o eleitor digita o número;
- Também está lá a lógica do boletim de urna (o relatório impresso no fim da seção, com os totais daquela urna), do registro interno dos votos (a tabela em que a urna guarda cada voto, fora da ordem de chegada) e das mensagens do terminal do mesário, a tela que o simulador nem mostra;
- As informações descobertas não eram disponibilizadas para o público geral.
- TSE afirma que as informações descobertas são novidade para 2026.
As entranhas do simulador, um relato mais técnico
No “Simulador”, em vez de reescrever a urna em linguagem de página web, o TSE compilou parte do aplicativo de votação para WebAssembly, um formato que o navegador executa com desempenho próximo ao de um programa comum.
Entre as informações compiladas, o módulo WebAssembly revela o código de geração do boletim de urna, o RDV (Registro Digital do Voto, arquivo em que a urna guarda os votos da seção), a saída que aparece no terminal do mesário e outros pontos. Até o momento, não está claro se o binário descoberto foi colocado de modo público intencionalmente.
Por trás da página existe um arquivo, o vota_web_wasm.wasm, que o navegador baixa e executa. O engenheiro de software Igor Alonge abriu esse arquivo e viu que ele não traz só a tela em que o eleitor digita o número: também está lá a lógica do boletim de urna (o relatório impresso no fim da seção, com os totais daquela urna), do registro interno dos votos (a tabela em que a urna guarda cada voto, fora da ordem de chegada) e das mensagens do terminal do mesário, a tela que o simulador nem mostra. Contudo, Alonge avisa que se trata do simulador, não do software lacrado das urnas no dia de eleição.
O arquivo que se chama vota_web_wasm.wasm tem cerca de 7,7 MB e a versão gravada nele é 10.23.0.1 - DESENVOLVIMENTO. Quando alguém abre o simulador, o navegador baixa esse módulo e roda a lógica da votação: digitação, confirmação, telas e regras da eleição de demonstração. A novidade da análise é o que mais vem dentro do pacote. Na reconstrução, aparecem pastas do aplicativo VOTA (programa que conduz a votação) com terminal do eleitor, terminal do mesário, abertura e encerramento da seção e geração do boletim. Outra pasta reúne o código compartilhado: dados da eleição, registro digital do voto, relatórios, gravação dos arquivos de resultado e logs.
O que mais foi descoberto no VOTA
No fio de publicações no X, o desenvolvedor Igor descreveu comportamentos novos que diz ter encontrado nesse fluxo. Entre eles, estão:
- Se a digital do eleitor falha, a urna pede a digital do mesário. No código analisado, qualquer dedo liberaria o eleitor. Se o sistema não associa a digital a um mesário cadastrado, registra a frase “Não é possível associar a habilitação a um mesário” e, ainda assim, libera;
- Em urnas de 2020 e 2022, o leitor usaria a primeira imagem do dedo. Em modelos mais antigos, capturaria três e guardaria a de maior detalhe;
- O teclado fica abaixo da tela nas urnas 2020/2022 e à direita nas de 2013/2015. O módulo de segurança aparece como MSE nas mais novas e MSD nas antigas. Só as de 2020 em diante registrariam no log a tensão da tomada e da bateria;
- Uma rotina chamada tornaNaoVotouParcial descartaria inclusive votos já confirmados e marcaria o eleitor como “não votou”, com log do tipo “Eleitor foi suspenso e não confirmou nenhum voto”. Em resposta posterior, o próprio autor liga o comportamento à Resolução TSE 23.669, já vigente em 2022: o retorno posterior valeria só para quem não confirmou nenhum voto, e nos logs de 2026 constaria a atribuição de voto nulo por suspensão, com a frase “O voto do eleitor foi computado”.
Exibição do código não é um problema
É preciso notar que a exibição dos códigos não é um problema e não significa que a urna eletrônica seria frágil em segurança. Pelo contrário, a abertura pública de códigos, principalmente a do código-fonte, é uma ação pedida veementemente por especialistas de segurança.
“Na minha visão não é um problema, especialmente quando a documentação ao redor do código já referenciava bastante coisa, mas nada ‘montado’ e legível”, comenta o engenheiro de software Igor Alonge. “Foi justamente por meio das documentações que o TSE disponibiliza que fui capaz de reconstruir tudo; além disso, a documentação com os arquivos disponibilizados (logs, boletim da urna, etc) ajudaram a validar o quanto, por baixo dos panos, o simulador provavelmente carrega do mesmo código que roda na urna real”.
O TecMundo conversou com Rodrigo Laneth, pesquisador de segurança que analisa o caso. Laneth comenta que “todos os componentes da urna eletrônica deveriam ser públicos. De acordo com as melhores práticas de engenharia de software, a segurança de um sistema não deve depender de que os detalhes sobre seu funcionamento, incluindo o código-fonte, sejam mantidos em segredo. Há pouquíssimos elementos que realmente precisam ser secretos, como, por exemplo, chaves criptográficas privadas”.
Sobre o Simulador de Votação, ele adiciona que “a versão do VOTA que veio a público, distribuída no simulador de votação do site do TSE, não contém, ao que pude analisar, qualquer chave criptográfica, o que é o esperado de um software desenvolvido de acordo com as boas práticas da indústria. O acesso ao código-fonte das urnas é previsto para um conjunto de entidades fiscalizadoras, como partidos políticos, Forças Armadas, Polícia Federal e universidades credenciadas, além dos participantes do Teste Público de Segurança dos Sistemas Eleitorais (TPU). Esse acesso é credenciado e supervisionado, ocorrendo, de acordo com o próprio TSE, em ambiente preparado para inspeção e nunca foi público no sentido de qualquer pessoa poder obtê-lo e analisá-lo livremente”.
“A surpresa é que, com todo esse histórico de restrição, tenha vindo a público uma versão de um componente tão central ao sistema de votação e que, presume-se, pelos indícios existentes no próprio arquivo, compartilha uma parte substancial do código com a versão carregada nas urnas”, adiciona.
O TecMundo também entrou em contato com Diego Aranha, professor e pesquisador da Universidade Estadual de Campinas e, desde 2018, Professor Assistente na Universidade de Aarhus, na Dinamarca. Aranha ficou conhecido por sua postura combativa aos métodos do TSE relacionados à transparência após participar do Teste Público de Segurança dos Sistemas Eleitorais (o Teste Público da Urna).
“Obviamente eu não sei se foi intencional ou acidental, mas isso é problema do TSE”, comenta. “Até onde eu entendo, parte do software de votação terminou publicada porque foi possível descompilar o código do simulador e recuperar código-fonte equivalente das partes compartilhadas. Não é o software de votação inteiro, há mecanismos de segurança que dependem do hardware da urna que obviamente não existem no simulador”.
Aranha reflete que o caso ensina algumas lições: “LLMs tornaram software secreto efetivamente obsoleto. É uma idéia que já envelhecia mal, especialmente para software de interesse público, mas agora ficou escancaradamente velha. Basta que uma única pessoa faça uma cópia do cartão de carga das urnas em uma eleição futura que teremos código-fonte equivalente do software de votação inteiro”.
“É por esse motivo que o software já deveria ter sido publicado faz tempo. Vale lembrar que qualquer presunção de segredo do software de votação já caía por terra após a invasão de 2018, o que falta é o TSE cumprir a promessa antiga de publicar o código-fonte. Espero que o TSE responda de maneira construtiva e não procure punição contra os envolvidos, dado o histórico do Tribunal em hostilizar pesquisadores de segurança independentes”, finaliza Aranha.
Posicionamento do TSE sobre o caso
Sobre o código-fonte obtido a partir do Simulador de Votação:
“Há muitos anos o TSE disponibiliza em seu portal de internet um simulador de votação para que o eleitor aprenda a votar sem precisar usar uma urna eletrônica. As primeiras versões desse simulador foram feitas em Java (applet Java). Mais tarde, o simulador foi baseado em Javascript/HTML5. Por serem tecnologias distintas daquela empregada na urna eletrônica (C++), a evolução do simulador sempre foi bastante onerosa, na medida em que mudanças visuais ou nas regras de votação na urna deveriam ser totalmente replicadas no simulador.
Assim, em 2026 a equipe técnica optou por utilizar a tecnologia WebAssembly. Essa tecnologia permite o uso de software escrito em C++ para integração à plataforma web em navegadores. Com isso, foi possível reutilizar parte do código-fonte do software da urna para a criação do simulador de votação atualmente disponível na internet. Isso foi feito visando a uma reprodução mais fidedigna da experiência de uso da urna por meio do simulador, tais como as telas de votação renovadas, barra de progresso da votação, intérprete de Libras em mais telas, uso ampliado da sintetização de voz, etc. Essa abordagem também será usada futuramente para um simulador específico para o treinamento de mesários.
É de conhecimento da equipe técnica do TSE que a tecnologia WebAssembly permite que um binário seja desmontado. Foi justamente isso que o Igor Alonge fez. Ciente disso, a equipe técnica buscou restringir o reuso do código-fonte da urna àquilo que era estritamente necessário para o funcionamento do simulador. O código que parece não ser necessário para uma simulação na verdade assegura um maior alinhamento com as regras negociais aplicadas na urna, permitindo evoluções futuras do simulador, sem prejudicar a sua utilização no momento.
Conforme o próprio Igor tem observado, falta muita coisa para que o código-fonte revelado seja plenamente funcional. E por ser fruto de um processo de engenharia reversa, não pode ser considerado uma cópia fiel do código-fonte das urnas brasileiras. Em outras palavras, o código-fonte apresentado não representa um risco de segurança, pois não revela segredos (chaves criptográficas, por exemplo) ou expõe algoritmos de uso restrito. A maior parte do código da urna integrado ao simulador diz respeito àquilo que é necessário para a montagem de telas e interação com o usuário. E parte do que foi desmontado é de uso exclusivo do Simulador de Votação e não está presente na urna eletrônica.
Com relação ao processo de identificação do eleitor e de liberação para votação, o software da urna segue as regras estipuladas nos artigos 133, 134 e 135 da Resolução TSE nº 23.751/2026. Quando o eleitor não é reconhecido por biometria após quatro tentativas, é necessária a conferência de um dado biográfico em até duas tentativas (ano de nascimento). Em caso de sucesso, o mesário posiciona o seu dedo no leitor biométrico da urna e a votação é liberada. A biometria do mesário é validada dentro do conjunto de biometrias conhecidas de mesários. Caso haja reconhecimento, é registrada a identificação do mesário que liberou a votação. Em caso de não reconhecimento da biometria do mesário, a imagem do dedo é gravada pela urna para posterior envio ao TSE para fins de auditoria e possível investigação criminal.
Com relação ao processo de gravação dos votos em caso de suspensão da votação, o software da urna segue as regras estipuladas no artigo 144 da Resolução TSE nº 23.751/2026.
Quando um eleitor abandona a cabina de votação, o mesário suspende o processo de votação. Os votos já confirmados pelo eleitor são preservados e são atribuídos votos nulos para os cargos não votados. Ocorre que o software da urna tem suporte a processos eleitorais para outras instituições, conforme estipulado pela Resolução nº 22.685/2007. Nesse contexto, há a previsão de configuração que suporte o aproveitamento de votos somente quando o eleitor conclui todo o processo de votação.
É importante destacar que as regras expressas nas resoluções que regem o processo eleitoral são submetidas à revisão de qualquer cidadão, por meio de audiências públicas.
Destaca-se também que no simulador os dados de candidatos e eleitores associados são totalmente fictícios e empregados pela Justiça Eleitoral em outros cenários de simulação e treinamento de eleitores e mesários.
Além disso, o Igor Alonge se prontificou a retirar o código-fonte do GitHub caso o TSE ou outra autoridade assim solicitasse. O TSE não pretende solicitar essa remoção, justamente por entender que não há qualquer risco para o processo eleitoral.
Por fim, a equipe técnica do TSE registra que o código-fonte do software da urna já está disponível para análise externa, nos termos da Resolução TSE nº 23.673/2021, que trata dos procedimentos de fiscalização e auditoria para as eleições e da Resolução TSE nº 23.444/2015, que trata do Teste Público de Segurança dos Sistemas Eleitorais. Essas normas permitem o acesso ao código-fonte a entidades fiscalizadoras e a qualquer cidadão interessado em contribuir com o aperfeiçoamento dos sistemas".