
Verificatore offline sanificato per fixture relativo a CVE-2026-81861 in SCADAPack Secure Lock
Questo repository è una proof of concept deliberatamente circoscritta per CVE-2026-81861. Verifica che due fixture controllate prodotte con il DTM Windows fornito dal vendor possano essere autenticate e decodificate utilizzando materiale di chiave comune.
Non è un exploit operativo. Non contiene alcun client di rete, dispositivo target, trasmettitore DNP3, operazione di sblocco, comando di forgiatura di messaggi, scanner di cattura o decifratore di file arbitrari. Non può contattare o modificare un RTU.
Il verificatore accetta solo questi esatti file inclusi, vincolati tramite SHA-256:
samples/vendor_generated/vendor_message_s1.bin: messaggio completo prodotto
dall'inizializzatore di messaggi del DTM del vendor stesso.samples/vendor_generated/harnessB_vendor_ciphertext_and_mac.bin: ciphertext
e MAC prodotti dalle routine crittografiche del vendor su byte in formato
prodotto assemblati dal ricercatore.Nessuno dei due file proviene da un RTU fisico. Dimostrano l'interoperabilità con l'implementazione del DTM fornito, non l'accettazione da parte di un dispositivo reale o la sfruttabilità in rete.
Le costanti e le chiavi di produzione non sono incluse. Un ricercatore che abbia già accesso autorizzato al software interessato può fornire un file JSON locale:
{
"hmac_sha256_key": "<64 hex characters>",
"aes128_kek": "<32 hex characters>"
}
Non eseguire il commit di quel file. Esegui la verifica circoscritta con:
python3 securelock_poc.py verify-fixtures --key-file /path/to/local-keys.json
Il comando rifiuta qualsiasi file non elencato nella sua allowlist di fixture e controlla il digest SHA-256 prima del parsing. Non stampa mai le chiavi fornite.
python3 tests/test_vectors.py
La suite predefinita utilizza vettori di test AES/RFC 3394 pubblici e chiavi di
test non di produzione. Se SECURELOCK_FIXTURE_KEY_FILE indica un file di chiavi
locale valido, verifica anche entrambe le fixture generate dal vendor; in caso
contrario quei test vengono saltati.
Consulta l'advisory Schneider Electric SEVD-2026-251-03 per i prodotti
interessati, le mitigazioni e le indicazioni del vendor.