
Verificador de fixture offline sanitizado para CVE-2026-81861 no SCADAPack Secure Lock
Este repositório é uma prova de conceito deliberadamente limitada para CVE-2026-81861. Ele verifica que dois fixtures controlados produzidos com o DTM Windows fornecido pelo fabricante podem ser autenticados e decodificados usando material de chave comum.
Não é um exploit operacional. Não contém cliente de rede, alvo de dispositivo, transmissor DNP3, operação de desbloqueio, comando de forja de mensagens, scanner de captura ou descriptografador de arquivos arbitrários. Não consegue contatar ou alterar uma RTU.
O verificador aceita apenas estes arquivos exatos incluídos no pacote, fixados por SHA-256:
samples/vendor_generated/vendor_message_s1.bin: mensagem completa produzida
pelo próprio inicializador de mensagens do DTM do fabricante.samples/vendor_generated/harnessB_vendor_ciphertext_and_mac.bin: texto
cifrado e MAC produzidos por rotinas criptográficas do fabricante sobre bytes
em formato de produto montados pelo pesquisador.Nenhum dos arquivos veio de uma RTU física. Eles demonstram interoperabilidade com a implementação do DTM fornecida, não aceitação por dispositivo real ou explorabilidade de rede.
Constantes e chaves de produção não estão incluídas. Um pesquisador que já tenha acesso autorizado ao software afetado pode fornecer um arquivo JSON local:
{
"hmac_sha256_key": "<64 hex characters>",
"aes128_kek": "<32 hex characters>"
}
Não faça commit desse arquivo. Execute a verificação limitada com:
python3 securelock_poc.py verify-fixtures --key-file /path/to/local-keys.json
O comando rejeita qualquer arquivo que não esteja nomeado em sua allowlist de fixtures e verifica o digest SHA-256 antes de fazer o parsing. Ele nunca imprime as chaves fornecidas.
python3 tests/test_vectors.py
A suíte padrão usa vetores de teste públicos AES/RFC 3394 e chaves de teste
não-produção. Se SECURELOCK_FIXTURE_KEY_FILE nomear um arquivo de chave local
válido, ela também verifica ambos os fixtures gerados pelo fabricante; caso
contrário, esses testes são ignorados.
Consulte o advisory da Schneider Electric SEVD-2026-251-03 para produtos
afetados, mitigações e orientações do fabricante.