CVE-2026-98254 in LinuxИнформация

Сводка

по VulDB • 06.10.2026

В ядре Linux была устранена следующая уязвимость:

swiotlb: использовать скорректированный адрес для поиска страницы highmem

Функция swiotlb_bounce() считывает номер кадра страницы (PFN) из записанного в слоте orig_addr, а затем увеличивает значение orig_addr на tlb_offset, чтобы получить адрес, о котором запросил вызывающий. В ветке highmem происходит смешивание этих двух значений: смещение внутри страницы берется из скорректированного адреса, а сама страница — из исходного значения до корректировки.

Как только корректировка пересекает границу страницы, эта пара больше не описывает одно и то же место в памяти, и вся операция копирования попадает на страницу ниже ожидаемой при положительном tlb_offset или выше нее при отрицательном значении. При DMA_FROM_DEVICE данные устройства записываются в неправильную страницу, а предполагаемая страница остается устаревшей (stale). При DMA_TO_DEVICE устройство считывает данные со страницы, которая может не покрываться отображением. Частичные синхронизации через dma_sync_single_range_for_*() являются причиной того, что tlb_offset становится отличным от нуля.

Проверка ветки выполняется аналогичным образом, поэтому слот, записанный в lowmem, может быть скорректирован так, чтобы указывать на highmem, и путь lowmem затем передает адрес highmem функции phys_to_virt().

Необходимо брать оба значения из orig_addr после того, как оно станет окончательным, а PFN оставить в ветке, которая его использует. Функция PhysHighMem() задает вопрос напрямую исходя из адреса, аналогично тому, как это уже делает dma-debug.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Ответственный

Linux

Резервировать

25.09.2026

Раскрытие

06.10.2026

Модерация

принято

Вход

VDB-414220

EPSS

0.00138

KEV

Нет

Деятельности

Очень низкий

Источники

Interested in the pricing of exploits?

See the underground prices here!