Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2026-74939-escape-the-mac-n-cheese-box — Повышение привилегий Firefox через IPDL content-to-parent (N-day, bug 2054416): поддельный PDocumentChannel с RemoteTypeOverride -> размещение в процессе privilegedabout, через инъекцию send-path mojo-port из скомпрометированного content-процесса | Kitploit
Инструменты/GitHubGitHub/sneakynachos/cve-2026-74939-escape-the-mac-n-cheese-box
Повышение привилегийФреймворки для эксплойтовАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийЭксплуатация Бинарных Файлов
GitHubsneakynachos/cve-2026-74939-escape-the-mac-n-cheese-box

CVE-2026-74939-escape-the-mac-n-cheese-box

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Повышение привилегий Firefox через IPDL content-to-parent (N-day, bug 2054416): поддельный PDocumentChannel с RemoteTypeOverride -> размещение в процессе privilegedabout, через инъекцию send-path mojo-port из скомпрометированного content-процесса

Репозиторий
121 ч 23 мин назадЕщё не проверено

CVE-2026-74939 — повышение привилегий content→parent в Firefox

PoC-эксплойт для побега из песочницы в Firefox 149.0a1 nightly (2fbc0748c4, до исправления). Скомпрометированный content-процесс подделывает IPDL-сообщение, из-за чего parent-процесс загружает страницу в привилегированный (privilegedabout) процесс.

Это побег из песочницы второго этапа, предназначенный для использования после RCE в content-процессе (например, CVE-2026-2796).

Баг (Mozilla bug 2054416)

Parent-процесс десериализует nsDocShellLoadState из IPDL-сообщений content→parent. Уязвимая сборка не отклоняет поле RemoteTypeOverride, устанавливаемое content-процессом, поэтому content может выбирать, в процессе какого типа окажется навигация.

Исправление (коммит 3ec5c71b41bb, «Validate RemoteTypeOverride») заставляет конструктор nsDocShellLoadState отклонять любое переопределение при загрузке, инициированной content-процессом.

Когда переопределение учитывается — загрузка документа about:blank, верхний уровень контекста — IsolationOptionsForNavigation устанавливает тип удалённой загрузки в значение переопределения, и страница попадает в привилегированный процесс. Граница песочницы нарушена.

Обзор эксплойта

Переопределение передаётся через PNecko::PDocumentChannel — сообщение, которое каждый content-процесс отправляет при каждой загрузке документа (DocumentChannelCreationArgs.loadState — это nsDocShellLoadState).

Доставка — самая интересная часть: прямая запись в IPC-сокет молча отбрасывается, поскольку IPDL-сообщения теперь передаются через mojo-порты. Вместо этого PoC управляет реальным путём отправки из JavaScript через нативные вызовы (используя примитив funcref из CVE-2026-2796):

  1. operator new — выделение блока кучи под IPC::Message
  2. IPC::Message::Message(routing, type, capacity, flags) — placement-конструктор
  3. Pickle::WriteBytes — добавление поддельной полезной нагрузки
  4. MessageChannel::Send на PContent-канале — mojo-обрамление, маршрутизация портов и порядковые номера обрабатываются нативно

Полезная нагрузка (создаётся forge.py) содержит RemoteTypeOverride = "privilegedabout", URI about:blank, нулевой (null) principal и значения, утёкшие из рантайма (id BrowsingContext, TriggeringRemoteType).

Файлы

Запуск

root@kitploit:~
./irun

Проверка

Логи parent-процесса (MOZ_LOG=ProcessIsolation:5,DocumentChannel:5) показывают переключение процесса в привилегированный процесс:

root@kitploit:~
V/ProcessIsolation using remote type override (privilegedabout) for load
I/ProcessIsolation Process Switch: Changing Remoteness from 'webIsolated=http://127.0.0.1' to 'privilegedabout'

Ссылки

  • Mozilla bug 2054416 — коммит с исправлением 3ec5c71b41bb «Validate RemoteTypeOverride»
  • RCE в content-процессе первого этапа: CVE-2026-2796
Скачать инструмент
ФайлНазначение
privesc.htmlPoC-страница, запускается внутри скомпрометированного content-процесса
forge.py / forge.jsonсборка поддельного IPDL-сообщения (с самопроверкой)
wasm-bytes.jsпримитивы первого этапа: произвольное чтение/запись, вызовы funcref
mdrive.py / mdrive2.pymarionette-обвязка для запуска и управления Nightly
irunинструментированный запуск: lldb attach к parent + доказательства через MOZ_LOG
profile.user.jsнастройки профиля Firefox (fission включён, dump включён)
parse_dc.pyпобайтово точный парсер перехваченных сообщений DocumentChannel
scan_sentinels.py / extract_fields.pyсканеры карты полей для перехваченных данных