CVE-2021-26829
Priorize a correção. Ela está sob exploração confirmada pelo CISA.
Apply mitigations per vendor instructions, follow applicable BOD 22-01 guidance for cloud services, or discontinue use of the product if mitigations are unavailable.
Resumo
Falha de Cross-Site Scripting armazenado no ScadaBR, um SCADA/HMI open source brasileiro, na página de configurações do sistema (system_settings.shtm). Um usuário autenticado com acesso a essa tela pode injetar script persistente que executa no navegador de qualquer pessoa que abra a página afetada — incluindo a tela de login. Ganhou relevância prática em 2025 quando a CISA a incluiu no catálogo KEV após confirmar exploração real por um grupo hacktivista contra um honeypot de estação de tratamento de água.
Detalhamento técnico
A vulnerabilidade é um XSS armazenado (CWE-79) no formulário de configurações do sistema, servido pela página system_settings.shtm. O ScadaBR não sanitiza/escapa corretamente um ou mais campos desse formulário (o caso documentado é a descrição exibida na tela de login) antes de persistir o valor e renderizá-lo de volta em HTML para qualquer usuário que visite a página correspondente. Como o valor é armazenado no backend e reproduzido em toda visualização subsequente, o payload sobrevive entre sessões e afeta qualquer visitante — não apenas quem o inseriu.
O vetor CVSS 3.1 divulgado pelo NVD (AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N, score 5.4) indica pré-requisitos concretos: o atacante precisa de privilégio baixo (PR:L) — ou seja, alguma conta válida no sistema, mesmo que limitada — e depende de interação da vítima (UI:R), que precisa abrir a página onde o payload foi injetado. O relatório original enviado ao fórum do ScadaBR classificou a falha como Medium com score 6.5, divergindo levemente do score final atribuído pelo NVD; a diferença não muda a natureza do problema, só o peso relativo dado a cada métrica.
O ScadaBR é descrito no advisory oficial (CVE) como afetado 'through 0.9.1' no Linux e 'through 1.12.4' no Windows, o que sugere numeração de versão diferente por plataforma — não há indicação de que exista uma versão unificada corrigida além do fork sucessor do projeto.
Como é explorada
Na prática documentada pela Forescout (honeypot de uma estação de tratamento de água simulada), o atacante primeiro obteve acesso à HMI usando credenciais padrão (admin/admin) — ou seja, o pré-requisito real de autenticação foi satisfeito por má configuração de credenciais, não por bypass de autenticação. Com essa conta, o atacante acessou a página de configurações do sistema e alterou a descrição exibida na tela de login para um payload que disparava um alert() sempre que a página de login era visitada, efetivamente uma defacement visível a qualquer operador ou usuário que acessasse o painel depois.
A exploração não depende de complexidade técnica alta: não houve escalonamento de privilégios nem exploração do host subjacente, apenas manipulação da camada de aplicação web. O mesmo incidente documentado envolveu ações adicionais não relacionadas a esta CVE (enumeração de banco via SQL, exclusão de PLCs como fontes de dados, alteração de setpoints, desativação de logs), mostrando que a CVE-2021-26829 foi usada como uma ferramenta dentro de um ataque mais amplo contra um sistema OT/ICS mal segmentado e exposto à internet, não como vetor de acesso inicial.
A CISA confirmou exploração ativa ao adicionar a falha ao catálogo KEV em novembro de 2025, atribuída a um grupo hacktivista alinhado à Rússia (TwoNet). Não há indício de exploração massiva automatizada; o padrão observado é de ataque direcionado contra interfaces HMI expostas com credenciais fracas ou padrão.
Versões
Como se proteger
O fornecedor original do ScadaBR foi descontinuado pelos desenvolvedores brasileiros; o desenvolvimento continuou no fork Scada-LTS. O único indício concreto de correção encontrado é um pull request no repositório do Scada-LTS (SCADA-LTS/Scada-LTS PR #3211) endereçando o problema — não há confirmação de versão numerada específica do ScadaBR original com o patch aplicado, apesar do mantenedor do fórum ter afirmado, em junho de 2021, estar trabalhando em uma correção.
Como paliativo real, elimine credenciais padrão/fracas em qualquer instalação do ScadaBR ou de HMIs derivadas — o incidente documentado começou com login admin/admin, que por si só já anula a barreira de PR:L do CVSS. Restrinja acesso à página system_settings.shtm a contas administrativas estritamente necessárias, remova exposição direta à internet do painel (a recomendação de segmentação de rede para ambientes OT/ICS é o controle compensatório mais efetivo aqui, já que a aplicação em si segue sem correção confirmada) e considere um WAF ou proxy reverso capaz de sanitizar/bloquear payloads de script nos campos de configuração como camada adicional.
Não funciona como mitigação: assumir que a exigência de PR:L no vetor CVSS torna o risco baixo — na prática, credenciais padrão ou fracas (muito comuns em ambientes OT legados) eliminam essa barreira por completo, como o incidente real demonstrou.
Como detectar
Procure alterações inesperadas em campos de configuração do sistema (especialmente a descrição/texto exibido na tela de login) contendo tags de script, atributos de evento HTML (onload, onerror) ou strings como ''. Em logs de acesso web, requisições POST para system_settings.shtm oriundas de contas que não deveriam ter privilégio de alterar essas configurações, ou originadas de IPs/user-agents fora do padrão operacional, são indício de tentativa de exploração — mas não há assinatura de rede confiável e amplamente publicada para essa falha específica, já que o payload varia por atacante e a maioria dos ataques observados começou com login legítimo (ainda que via credencial padrão), o que dificulta distinguir tráfego malicioso de administração normal sem contexto de linha de base.