
개념 증명(PoC)으로, Phison S11 SSD의 펌웨어 서명 검증 우회를 시연하며, 공격자가 자체 RSA 모듈러스를 삽입하여 변조된 펌웨어에 재서명할 수 있게 한다.
CVE-2026-82876(CVSS 3.1: 8.2 High / CVSS 4.0: 9.3 Critical, CWE-347)에 대한 개념 증명(PoC)입니다: Phison PS3111-S11 SATA SSD 컨트롤러는 펌웨어 업데이트 RSA 서명을 불변 컨트롤러 저장소에 고정된 모듈러스 대신 펌웨어 이미지 자체에 내장된 공개 모듈러스에 대해 검증합니다. 누구나 자신의 RSA 키 쌍을 생성하고, 수정된 펌웨어에 다시 서명하고, 일치하는 모듈러스를 내장할 수 있으며 — 모든 S11 기반 드라이브는 변조된 이미지를 정품으로 수락합니다.
동반 권고: CVE-2026-84696(CWE-306) — ATA 인터페이스를 통해 노출된 권한 있는 벤더 고유 명령(VUC)으로, 인증이 없거나 우회 가능한 인증(CRC-16 challenge-response)을 사용하여 컨트롤러 메모리와 원시 NAND에 대한 읽기/쓰기 액세스를 허용합니다 — 즉, 펌웨어 업데이트 경로를 거치지 않고도 동일한 임플란트 지속성을 제공합니다.
취약점 연구: Michael Herbert(trulycrisp). CVE는 2026년 8월 31일/9월 2일(NVD)에 게시되었으며, 권고는 VulnCheck에서 제공합니다.
forge_signature.py는 로직 수준의, 의존성 없는 데모입니다 — 순수 Python 3 표준 라이브러리만 사용하며 하드웨어가 필요 없습니다:
.BIN 레이아웃(512바이트 헤더 | burner 코드 | 3072바이트 서명 세그먼트 | 일반 코드)을 미러링하는 합성 이미지와 그 위에 실제 RSA-2048/PKCS#1 v1.5/SHA-256 서명을 구축합니다.+768에서 읽습니다.$ python3 forge_signature.py
약 5~15초 소요(순수 Python RSA-2048 키 생성 2회). 타사 패키지가 필요 없습니다.
이 저장소는 의도적으로 로직 수준에서 멈춥니다. 실제 S11 기반 하드웨어에 대해 작업하려면 연구자의 자체 도구(Python)를 사용하십시오:
$ git clone https://github.com/trulycrisp/psychite
$ cd psychite && python3 -m pip install -e .
$ example/drive_info.py /dev/sg0 # 드라이브 식별
$ example/read_firmware.py /dev/sg0 firmware.bin # 설치된 펌웨어 덤프
$ example/firmware_tool.py unpack firmware.bin fw/ # 수정을 위해 언팩
$ example/firmware_tool.py pack fw/ firmware.bin # 다시 팩
$ example/update_firmware.py firmware.bin /dev/sg0 # 설치 (위험)
드라이브의 VUC 잠금 상태를 감사하려면(읽기 전용 검사) disksec을 사용하십시오:
$ disksec list
$ disksec run /dev/sg0 -vv -o report.txt
Phison PS3111-S11 컨트롤러 펌웨어 ≤ SBFQT1.3 — 현재 작성 시점 기준 수정 사항이 없습니다. S11은 많은 보급형 SATA SSD에 사용되며, 여기에는(연구자의 하드웨어 표에 따르면) Kingston A400 / Q500, Toshiba/Kioxia TR200, PNY CS900 / CS2040 / Elite, Seagate BarraCuda Q1, Silicon Power A58, Patriot Burst, MSI S270, Team GX1 등이 포함됩니다.
이 코드는 승인된 보안 연구 및 교육 목적으로만 사용하십시오. 소유한 드라이브에만 펌웨어를 플래시하십시오. 수정된 펌웨어는 드라이브를 영구적으로 벽돌로 만들 수 있으며, 소유하지 않은 드라이브에 임플란트를 설치하는 것은 대부분의 관할권에서 범죄입니다.