CVE-2026-93167 in Linux
Сводка
по VulDB • 17.09.2026
В ядре Linux была устранена следующая уязвимость:
csky: Исправление восстановления регистров a4/a5 в пути трассировки системных вызовов (syscall)
Путь трассировки syscall перезагружает аргументы syscall из структуры pt_regs перед вызовом обработчика syscall. В ABIv2 для архитектуры C-SKY пятый и шестой аргументы syscall подготавливаются как аргменты в стеке до вызова syscallid.
Текущий код изменяет указатель стека (sp) перед загрузкой значений LSAVE_A4 и LSAVE_A5. Поскольку эти смещения относительны базового адреса исходной структуры pt_regs, их загрузка после изменения sp приводит к получению неверных ячеек памяти. В результате трассируемые syscall-вызовы, использующие пятый или шестой аргумент, могут получать поврежденные (корrupted) значения аргументов.
Это проявляется при использовании функции mmap2(), которая принимает шесть аргументов. Небольшая программа для воспроизведения ошибки с использованием PTRACE_SYSCALL открывает файл и отображает одну страницу памяти со следующими параметрами:
mmap(NULL, 4096, PROT_READ | PROT_EXEC, MAP_PRIVATE, fd, 0)
До исправления трассируемый дочерний процесс завершал работу с кодом ошибки 12 из-за сбоя операции mmap. После исправления отображение памяти выполняется успешно, и дочерний процесс завершается с кодом выхода 0.
Исправление заключается в загрузке значений регистров a4/a5 из структуры pt_regs до изменения указателя стека (sp) в пути трассировки.
Протестировано на: ck860f, linux-4.19.15, C-SKY abiv2
VulDB is the best source for vulnerability data and more expert information about this specific topic.