← На главную

Аппаратный бэкдор rosenbridge в VIA C3 даёт ring 3 доступ к ring 0

08.08.2026 07:04 · hackernews

Исследователь Кристофер Домас выпустил проект rosenbridge — аппаратный бэкдор в x86-процессорах. Он нашёлся в чипах VIA C3. Бэкдор позволяет коду из ring 3 (userland) читать и писать данные ring 0 (kernel), обходя защиту процессора. Обычно он выключен и требует доступа к ядру для включения, но на некоторых системах включён по умолчанию — тогда любой непривилегированный код может менять ядро.

Внутри CPU рядом с основным x86-ядром сидит маленькое non-x86 ядро. Оно активируется битом в model-specific-register, запускается через launch-instruction, а команды ему передаются в специально оформленной x86-инструкции. Скрытое ядро выполняет собственный набор команд Deeply Embedded Instruction Set (DEIS), игнорируя защиты памяти и проверки привилегий. От Management Engine и Platform Security Processor бэкдор отличается тем, что сидит глубже: у него есть доступ не только ко всей памяти CPU, но и к регистровому файлу и конвейеру исполнения.

Скорее всего, затронуты только VIA C3. Их ставили в промышленную автоматику, POS-терминалы, банкоматы, медицинское оборудование и обычные десктопы и ноутбуки. Более новые поколения процессоров этой функции уже не содержат.

В репозитории лежат утилиты для проверки и закрытия бэкдора. Проверка работает только на «bare metal», не в виртуальной машине, и находится в alpha-состоянии: на системах без бэкдора она может вызвать крах или зависание. Скрипт для закрытия ставится в начало загрузки, но он только обновляет model-specific-register, поэтому атакующий с правами ядра сможет включить бэкдор снова. Утилиты заточены под конкретное семейство процессоров: если бэкдор хоть немного модифицировать, они его не увидят.

В исследовании использовали фаззер sandsifter. В репозитории также есть ассемблер для DEIS, proof-of-concept эскалации привилегий, наборы для фаззинга x86 и скрытого ядра, утилиты для поиска exit-последовательности, менеджер распределённого фаззинга на Python, средства мониторинга памяти и регистров ядра и тулзы для блокировки и разблокировки бэкдора.

Домас называет работу case study и thought experiment: она показывает, как бэкдоры могут появляться в сложных процессорах и как их находить. По его мнению, функцию создали добросовестно, как полезную опцию для встраиваемого рынка, но случайно оставили включённой на ранних поколениях VIA. Злого умысла он не предполагает.

Читать оригинал →