
SCADAPack Secure Lock의 CVE-2026-81861에 대한 정제된 오프라인 픽스처 검증기
이 저장소는 CVE-2026-81861에 대한 의도적으로 범위가 제한된 개념 증명입니다. 이는 벤더가 제공한 Windows DTM으로 생성된 두 개의 통제된 fixture가 공통 키 자료를 사용하여 인증되고 디코딩될 수 있음을 검증합니다.
이것은 운영상의 익스플로잇이 아닙니다. 네트워크 클라이언트, 장치 대상, DNP3 송신기, 잠금 해제 작업, 메시지 위조 명령, 캡처 스캐너 또는 임의 파일 복호화기를 포함하지 않습니다. RTU에 접속하거나 변경할 수 없습니다.
검증기는 SHA-256으로 고정된 다음의 정확한 번들 파일만 허용합니다:
samples/vendor_generated/vendor_message_s1.bin: 벤더 DTM 자체의 메시지 초기화기로 생성된 완전한 메시지.samples/vendor_generated/harnessB_vendor_ciphertext_and_mac.bin: 연구자가 조립한 제품 형식 바이트에 대해 벤더 암호화 루틴으로 생성된 암호문과 MAC.두 파일 모두 물리적 RTU에서 나온 것이 아닙니다. 이들은 제공된 DTM 구현과의 상호운용성을 입증하는 것이지, 실제 장치 수용이나 네트워크 익스플로잇 가능성을 입증하는 것이 아닙니다.
프로덕션 상수와 키는 포함되지 않습니다. 영향을 받는 소프트웨어에 이미 승인된 접근 권한이 있는 연구자는 로컬 JSON 파일을 제공할 수 있습니다:
{
"hmac_sha256_key": "<64 hex characters>",
"aes128_kek": "<32 hex characters>"
}
해당 파일을 커밋하지 마십시오. 다음과 같이 범위가 제한된 검증을 실행하십시오:
python3 securelock_poc.py verify-fixtures --key-file /path/to/local-keys.json
이 명령은 fixture 허용 목록에 명시되지 않은 파일을 거부하고, 파싱 전에 SHA-256 다이제스트를 확인합니다. 제공된 키를 절대 출력하지 않습니다.
python3 tests/test_vectors.py
기본 스위트는 공개 AES/RFC 3394 테스트 벡터와 비프로덕션 테스트 키를 사용합니다. SECURELOCK_FIXTURE_KEY_FILE이 유효한 로컬 키 파일을 지정하면 두 벤더 생성 fixture도 검증하며, 그렇지 않으면 해당 테스트는 건너뜁니다.
영향을 받는 제품, 완화 조치 및 벤더 지침은 Schneider Electric 권고 SEVD-2026-251-03을 참조하십시오.