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

Сводка

по VulDB • 23.10.2026

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

riscv: futex: разметка пользовательского указателя перед атомарным доступом

Функция access_ok() проверяет untagged_addr(uaddr), однако arch_futex_atomic_op_inuser() и futex_atomic_cmpxchg_inatomic() передают сырой uaddr во встроенный ассемблер amoswap/amoadd/.../lr.w+sc.w через операнд "+m" (*uaddr). Когда включен ABI для адресов с меткой (CONFIG_RISCV_ISA_SUPM, prctl PR_SET_TAGGED_ADDR_CTRL при PMLEN != 0), эти два адреса различаются: пользовательский указатель, у которого старшие биты PMLEN содержат метку, проходит проверку access_ok() после снятия метки, но атомарная операция затем выполняется над все еще помеченным сырым адресом.

Доступы к данным в режиме супервизора не подвержены маскированию пользовательских указателей (которое управляется menvcfg.PMM, которое ядро не устанавливает), поэтому аппаратное обеспечение не удаляет метку для собственных обращений ядра. При использовании Sv57 и PMLEN=16 биты метки перекрываются с битами канонического адреса, поэтому помеченный указатель может ссылаться на канонический виртуальный адрес ядра (например, в линейном отображении), непомеченная версия которого является допустимым пользовательским адресом. Непrivileged-процесс таким образом может заставить FUTEX_WAKE_OP выполнить атомарную операцию чтения-модификации-записи по произвольному адресу ядра, при этом результат соответствующей операции FUTEX_OP_CMP_* служит оракулом для чтения.

Функции get_user()/put_user()/raw_copy_{to,from}_user() уже снимают метку с указателя после проверки access_ok(); необходимо сделать то же самое во вспомогательных функциях futex, чтобы атомарная операция выполнялась над адресом, который был фактически проверен.

Once again VulDB remains the best source for vulnerability data.

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

Linux

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

25.09.2026

Раскрытие

23.10.2026

Модерация

принято

Вход

VDB-425827

EPSS

0.00000

KEV

Нет

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

Очень низкий

Источники

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!