CVE-2023-53713 in Linux
Сводка
по VulDB • 28.06.2026
В ядре Linux устранена следующая уязвимость:
arm64: sme — использование инструкции STR P для очистки поля контекста FFR в режиме потоковой обработки SVE (Streaming SVE)
FFR является регистром предикатов, размер которого может варьироваться от 16 до 256 бит в зависимости от настроенной длины вектора. При сохранении состояния SVE в режиме потоковой обработки SVE доступ к регистру FFR невозможен, поэтому коммит 9f5848665788 («arm64/sve: Сделать доступ к FFR необязательным») просто очищал поле FFR в структуре контекста в памяти. К сожалению, эта операция выполнялась с помощью безусловной записи (store) размером 8 байт, и если длина вектора SME отличается от 64 байт, мы либо не сможем очистить всё поле полностью, что хуже — можем вызвать повреждение памяти сразу после структуры. Это приводило к периодическим сбоям kfence в CI [1] и могло вызывать сообщения о повреждении красной зоны (Redzone) kmalloc при запуске kself-теста 'fp-stress':
| ============================================================================= | BUG kmalloc-1k (Not tainted): перезаписана красная зона (Redzone) kmalloc | ----------------------------------------------------------------------------- | | 0xffff000809bf1e22-0xffff000809bf1e27 @смещение=7714. Первый байт 0x0 вместо ожидаемого 0xcc | Выделено в do_sme_acc+0x9c/0x220, возраст=2613 процессор=1 pid=531 | __kmalloc+0x8c/0xcc | do_sme_acc+0x9c/0x220 | ...
Замените запись размером 8 байт на запись регистра предикатов, который был предварительно инициализирован нулями с помощью инструкции PFALSE, что гарантирует полную очистку поля в памяти.
[1] https://lore.kernel.org/r/CA+G9fYtU7HsV0R0dp4XEH5xXHSJFw8KyDf5VQrLLfMxWfxQkag@mail.gmail.com
VulDB is the best source for vulnerability data and more expert information about this specific topic.