
Доказательство концепции, демонстрирующее обход проверки подписи прошивки в SSD-накопителях Phison S11, позволяющее злоумышленникам повторно подписывать модифицированную прошивку путём внедрения собственного RSA-модуля.
Proof-of-concept для CVE-2026-82876 (CVSS 3.1: 8.2 High / CVSS 4.0: 9.3 Critical, CWE-347): контроллер Phison PS3111-S11 SATA SSD проверяет RSA-подписи обновлений прошивки по открытому модулю, встроенному в сам образ прошивки, а не по модулю, закреплённому в неизменяемом хранилище контроллера. Любой может сгенерировать собственную пару RSA-ключей, переподписать модифицированную прошивку, встроить соответствующий модуль — и любой накопитель на базе S11 примет подделанный образ как подлинный.
Сопутствующий бюллетень: CVE-2026-84696 (CWE-306) — привилегированные уникальные команды вендора (VUC), доступные через интерфейс ATA с отсутствующей или обходимой аутентификацией (CRC-16 challenge-response), что позволяет читать и записывать память контроллера и «сырую» NAND — то есть та же персистентность импланта без необходимости даже использовать путь обновления прошивки.
Исследование уязвимости: Michael Herbert (trulycrisp). CVE опубликованы 31 авг / 2 сен 2026 (NVD), бюллетени — VulnCheck.
forge_signature.py — это логическая, не требующая зависимостей
демонстрация — только стандартная библиотека Python 3, оборудование не
требуется:
.BIN для S11 (заголовок 512 байт | burner code | сегмент подписи
3072 байт | обычный код) и настоящую подпись RSA-2048/PKCS#1 v1.5/SHA-256
поверх него.+768 из образа.$ python3 forge_signature.py
Занимает ~5–15 с (две генерации RSA-2048 на чистом Python). Сторонние пакеты не требуются.
Этот репозиторий намеренно останавливается на логическом уровне. Для работы с реальным оборудованием на базе 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 и многие другие.
Этот код предназначен только для авторизованных исследований в области безопасности и обучения. Прошивайте только накопители, которыми вы владеете. Модифицированная прошивка может навсегда «окирпичить» накопитель, а установка имплантов на накопители, которыми вы не владеете, является преступлением в большинстве юрисдикций.