В ядре Linux была устранена следующая уязвимость: sched_ext: Исправление некорректного обнаружения миграции автогруппы. Функция scx_move_ta…
В ядре Linux была устранена следующая уязвимость: sched_ext: Исправление некорректного обнаружения миграции автогруппы. Функция scx_move_task() вызывается из sched_move_task() и информирует планировщик BPF о том, что миграция cgroup осуществляется. Функция sched_move_task() используется как для миграций cgroup, так и для автогрупп, и scx_move_task() пыталась отфильтровать миграции автогруппы, проверяя целевую cgroup и PF_EXITING, но этого недостаточно. Фактически, без явной метки потока, который выполняет миграцию cgroup, нет надлежащего способа различить вызовы scx_move_task() для гонки миграции в корневую cgroup и миграции автогруппы. Это привело к тому, что scx_move_task() неправильно игнорировала миграцию из некорневой cgroup в автогруппу корневой cgroup, что вызвало следующее предупреждение: WARNING: CPU: 7 PID: 1 at kernel/sched/ext.c:3725 scx_cgroup_can_attach+0x196/0x340 ... Call Trace: <TASK> cgroup_migrate_execute+0x5b1/0x700 cgroup_attach_task+0x296/0x400 __cgroup_procs_write+0x128/0x140 cgroup_procs_write+0x17/0x30 kernfs_fop_write_iter+0x141/0x1f0 vfs_write+0x31d/0x4a0 __x64_sys_write+0x72/0xf0 do_syscall_64+0x82/0x160 entry_SYSCALL_64_after_hwframe+0x76/0x7e Исправлено добавлением аргумента к sched_move_task(), который указывает, относится ли перемещение к миграции cgroup или автогруппы. После внесения изменений scx_move_task() вызывается только для миграций cgroup и переименовывается в scx_cgroup_move_task().
| Продукт | Вендор | Статус |
|---|---|---|
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux-5.10 | Отслеживается | |
| linux-5.10 | Отслеживается | |
| linux-allwinner-5.19 | Отслеживается | |
| linux-aws | Отслеживается | |
| linux-aws | Отслеживается | |
| linux-aws | Отслеживается | |
| linux-aws | Отслеживается | |
| linux-aws | Отслеживается | |
| linux-aws | Отслеживается | |
| linux-aws | Отслеживается |