PS5 взломали: вышел первый эксплойт почти для всех прошивок

Разработчик Nathan Fargo опубликовал описание эксплойта Relapse для PlayStation 5.
По его словам, проект демонстрирует концепцию обхода встроенных механизмов защиты операционной системы консоли и создан исключительно в исследовательских целях для анализа безопасности платформы.
Редакция «Код.ру» выступает против пиратства. Модификация программного обеспечения нарушает пользовательское соглашение Sony, может привести к отзыву гарантии и блокировке аккаунта в PlayStation Network.
Как следует из описания автора, эксплойт представляет собой двухэтапную цепочку (Full-Chain): сначала атакуется пользовательское пространство (Userland), затем ядро операционной системы Prospero, созданной на базе FreeBSD.
Первый этап начинается с системного браузера на движке WebKit. Автор указывает на логическую ошибку в механизме глубокого копирования объектов JavaScriptCore (structuredClone): рассинхронизация буферов позволяет перезаписать метаданные массива Uint8Array и получить произвольное чтение и запись в памяти процесса. Для обхода защиты W^X, запрещающей исполнение стороннего кода, используется ROP-цепочка (Return-Oriented Programming), собранная из уже существующих системных инструкций.
Далее, по описанию разработчика, обходится рандомизация адресного пространства ядра (KASLR): из-за неверного вычисления смещений в одном из отладочных системных вызовов ядро читает данные за пределами структуры и раскрывает базовый адрес памяти.
Ключевая часть атаки связана с логической ошибкой в реализации асинхронного ввода-вывода (AIO) в ядре PlayStation 5. По версии автора, при добавлении новых режимов ожидания в системном вызове aio_multi_wait в коде одного из режимов была допущена ошибка: при отправке двух и более запросов ядро связывает разные задачи с одним и тем же узлом. После очистки возникает состояние Use-After-Free (обращение к памяти после освобождения), а висячие указатели позволяют провести контролируемый декремент по произвольному адресу. Так подменяются параметры дескриптора пайпа (pipe_buffer), что даёт неограниченный доступ к чтению и записи в памяти ядра (Kernel R/W).
На завершающем этапе, как утверждает автор, эксплойт снимает ограничения изолированной среды FreeBSD jail и повышает привилегии процесса до уровня суперпользователя. После этого становится возможной загрузка дополнительных компонентов, включая среду etaHEN, которая ранее применялась в сообществе для отладки и расширения возможностей консоли.
Автор подтверждает работоспособность концепта на версиях прошивки вплоть до 13.60. По его данным, в системном обновлении 14.00, вышедшем 16 сентября, Sony закрыла использованную цепочку уязвимостей.