CVE-2026-23311

NONE EPSS 0.02%
Обновлено 25 марта 2026
Linux
Параметр Значение
Поставщик Linux
Публичный эксплойт Нет

В ядре Linux устранена следующая уязвимость: perf/core: исправлен недопустимый контекст ожидания в ctx_sched_in(). Lockdep обнаружил ошибку в планировании событий, когда закрепленное событие было не удалось и пробуждает потоки в кольцевом буфере, как показано ниже. Кажется, он не должен захватывать блокировку очереди ожидания при блокировке перф-контекста.

Давайте сделаем это с помощью irq_work. [ 39.913691] ============================= [39.914157] [ОШИБКА: Неверный контекст ожидания] [ 39.914623] 6.15.0-next-20250530-next-2025053 #1 Не испорчено [ 39.915271] ----------------------------- [ 39.915731] repro/837 пытается заблокировать: [ 39.916191] ffff88801acfabd8 (&event->waitq){....}-{3:3}, по адресу: __wake_up+0x26/0x60 [ 39.917182] другая информация, которая может помочь нам отладить это: [ 39.917761] контекст-{5:5} [ 39.918079] 4 замка, удерживаемые repro/837: [ 39.918530] #0: ffffffff8725cd00 (rcu_read_lock){....}-{1:3}, по адресу: __perf_event_task_sched_in+0xd1/0xbc0 [ 39.919612] #1: ffff88806ca3c6f8 (&cpuctx_lock){....}-{2:2}, по адресу: __perf_event_task_sched_in+0x1a7/0xbc0 [ 39.920748] #2: ffff88800d91fc18 (&ctx->lock){....}-{2:2}, по адресу: __perf_event_task_sched_in+0x1f9/0xbc0 [ 39.921819] #3: ffffffff8725cd00 (rcu_read_lock){....}-{1:3}, по адресу: perf_event_wakeup+0x6c/0x470

Показать оригинальное описание (EN)

In the Linux kernel, the following vulnerability has been resolved: perf/core: Fix invalid wait context in ctx_sched_in() Lockdep found a bug in the event scheduling when a pinned event was failed and wakes up the threads in the ring buffer like below. It seems it should not grab a wait-queue lock under perf-context lock. Let's do it with irq_work. [ 39.913691] ============================= [ 39.914157] [ BUG: Invalid wait context ] [ 39.914623] 6.15.0-next-20250530-next-2025053 #1 Not tainted [ 39.915271] ----------------------------- [ 39.915731] repro/837 is trying to lock: [ 39.916191] ffff88801acfabd8 (&event->waitq){....}-{3:3}, at: __wake_up+0x26/0x60 [ 39.917182] other info that might help us debug this: [ 39.917761] context-{5:5} [ 39.918079] 4 locks held by repro/837: [ 39.918530] #0: ffffffff8725cd00 (rcu_read_lock){....}-{1:3}, at: __perf_event_task_sched_in+0xd1/0xbc0 [ 39.919612] #1: ffff88806ca3c6f8 (&cpuctx_lock){....}-{2:2}, at: __perf_event_task_sched_in+0x1a7/0xbc0 [ 39.920748] #2: ffff88800d91fc18 (&ctx->lock){....}-{2:2}, at: __perf_event_task_sched_in+0x1f9/0xbc0 [ 39.921819] #3: ffffffff8725cd00 (rcu_read_lock){....}-{1:3}, at: perf_event_wakeup+0x6c/0x470