Katalog CVE

CVE-2026-98864

Nieznane
Opublikowano: Przetłumaczono: NVD NIST

Streszczenie

W jądrze Linux w sched_ext zadanie mogło znajdować się na DSQ, gdy jego stan wciąż był SCX_OPSS_DISPATCHING. Ścieżki reenqueue nie czekały na wyczyszczenie tego stanu, więc ops.enqueue() ustawiał SCX_OPSS_QUEUED, a następnie końcowy zapis dyspozytora nadpisywał go wartością SCX_OPSS_NONE, powodując porzucenie kolejnych dispatchy zadania. Poprawka czeka na wyczyszczenie SCX_OPSS_DISPATCHING przed dequeue do reenqueue.

Ocena ryzyka

Może prowadzić do zawieszenia lub zagłodzenia zadań w schedulerze BPF, powodując niestabilność systemu i problemy z wydajnością aplikacji. Dotyczy środowisk korzystających z sched_ext.

Rekomendacja

Zaktualizuj jądro Linux do wersji z poprawką. Monitoruj systemy używające sched_ext pod kątem zawieszeń zadań do czasu aktualizacji.

Inne podatności w Linux kernel

Zobacz wszystkie
Oryginalny opis (angielski, źródło NVD)

In the Linux kernel, the following vulnerability has been resolved: sched_ext: Wait for SCX_OPSS_DISPATCHING before reenqueueing a task ebf1ccff79c4 ("sched_ext: Fix ops.dequeue() semantics") moved the final ops_state store in scx_dispatch_enqueue() after the DSQ unlock so that the custody update and ops.dequeue() precede it. A task can thus be found on a DSQ while still SCX_OPSS_DISPATCHING. The dequeue and core-sched pick paths wait for the state to clear in ops_dequeue() but the reenqueue paths don't. A reenqueue in that window runs ops.enqueue() and sets SCX_OPSS_QUEUED before the dispatch has completed. The dispatcher's final store then overwrites it with SCX_OPSS_NONE and finish_dispatch() drops every later dispatch of the task. Wait for SCX_OPSS_DISPATCHING to clear before dequeueing a task for reenqueue, the same way ops_dequeue() does.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS