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

Сводка

по VulDB • 19.10.2026

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

arm64/fpsimd: signal: Запретить непотоковый SVE-пейлоад на системах, поддерживающих только SME

Когда system_supports_sme() возвращает true, а system_supports_sve() — false, восстановление специально созданного контекста сигнала SVE может привести к тому, что задача ошибочно получит непотоковое состояние SVE. Последующие попытки манипулирования состоянием FPSIMD/SVE/SME задачи могут вызвать различные проблемы, включая фатальные ошибки EL1 UNDEF (неопределенная инструкция).

В таких конфигурациях ядро всегда создает контекст сигнала SVE при доставке сигнала, и он может находиться только в одном из двух состояний:

(1) Установлен флаг SVE_SIG_FLAG_SM, и присутствует пейлоад SVE, содержащий состояние SVE в потоковом режиме. Записанное значение VL (Vector Length — длина вектора) соответствует текущему активному значению VL задачи для потока.

(2) Флаг SVE_SIG_FLAG_SM сброшен, и пейлоада SVE нет. Контекст FPSIMD содержит состояние FPSIMD в непотоковом режиме. Записанное значение VL равно 0.

В настоящее время функция restore_sve_fpsimd_context() корректно отклоняет случаи, когда установлен флаг SVE_SIG_FLAG_SM, но отсутствует пейлоад SVE, однако она не отклоняет случаи, когда флаг SVE_SIG_FLAG_SM сброшен, а пейлоад SVE присутствует. В результате restore_sve_fpsimd_context() может перевести задачу в состояние с непотоковым состоянием SVE даже тогда, когда это не поддерживается аппаратным обеспечением (HW).

Например, это может вызвать ошибку EL1 UNDEF позже, когда ядро попытается восстановить значение ZCR_EL1 задачи:

| # ./sme-sigcontext-to-sve | Internal error: Oops - Undefined instruction: 0000000002000000 [#1] SMP
| Modules linked in: | CPU: 0 UID: 0 PID: 131 Comm: sme-sigcontext- Not tainted 7.3.0-rc1 #1 PREEMPT | Hardware name: linux,dummy-virt (DT) | pstate: 61402009 (nZCv daif +PAN -UAO -TCO +DIT -SSBS BTYPE=--) | pc : fpsimd_restore_current_state+0x258/0x458 | lr : exit_to_user_mode_loop+0xb8/0x188 | sp : ffff80008056be40 | x29: ffff80008056be40 x28: fff00000c1670000 x27: 0000000000000000 | x26: 0000000000000000 x25: 0000000000000000 x24: 0000000000000000 | x23: ffff80008056bec0 x22: 0000000000000008 x21: 0000000000000040 | x20: 0000000000000081 x19: 0000000008800010 x18: 0000000000000000 | x17: 0000fffffd412570 x16: 0000000000001000 x15: 0000fffffd4123b0 | x14: 0000fffffd412780 x13: 0000fffffd412be8 x12: 0000000047435300 | x11: 0000fffffd412570 x10: 0000000000000000 x9 : 0000000045585401 | x8 : fff00000c18a6c44 x7 : 0000000000000000 x6 : 0000000000000002 | x5 : 0000000000000002 x4 : ffff800080568000 x3 : 0000000000000001 | x2 : 0000000008800010 x1 : fff00000c1670000 x0 : 0000000008800000 | Call trace: | fpsimd_restore_current_state+0x258/0x458 (P) | exit_to_user_mode_loop+0xb8/0x188 | el0_svc+0x1cc/0x1d0 | el0t_64_sync_handler+0xa0/0xe4 | el0t_64_sync+0x198/0x19c | Code: d5384101 f9400020 53175c03 36b80de0 (d5381202) | ---[ end trace 0000000000000000 ]---
| Kernel panic - not syncing: Oops - Undefined instruction: Fatal exception in interrupt | Kernel Offset: 0x291fb1000000 from 0xffff800080000000 | PHYS_OFFSET: 0x40000000 | CPU features: 0x0,00000000,0052802f,ffb88f43,3afcf73f | Memory Limit: none

Переписать функцию restore_sve_fpsimd_context() так, чтобы она отклоняла случаи, когда флаг SVE_SIG_FLAG_SM сброшен и отсутствует пейлоад SVE. Поскольку функция parse_user_sigframe() уже отклоняет кадры сигналов SVE, если не поддерживаются ни SVE, ни SME, нет необходимости для restore_sve_fpsimd_context() обрабатывать случай, когда не поддерживается ничего из этого набора технологий.

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

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

Linux

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

25.09.2026

Раскрытие

18.10.2026

Модерация

принято

Вход

VDB-421964

EPSS

0.00168

KEV

Нет

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

Очень низкий

Источники

Do you know our Splunk app?

Download it now for free!