sched_ext: Disable preemption between scx_claim_exit() and kicking helper work

Platform

linux

Component

linux

Fixed in

41423912f7ac7494ccd6eef411227b4efce740e0

In the Linux kernel, the following vulnerability has been resolved:

schedext: Disable preemption between scxclaim_exit() and kicking helper work

scxclaimexit() atomically sets exitkind, which prevents scxerror() from triggering further error handling. After claiming exit, the caller must kick the helper kthread work which initiates bypass mode and teardown.

If the calling task gets preempted between claiming exit and kicking the helper work, and the BPF scheduler fails to schedule it back (since error handling is now disabled), the helper work is never queued, bypass mode never activates, tasks stop being dispatched, and the system wedges.

Disable preemption across scxclaimexit() and the subsequent work kicking in all callers - scxdisable() and scxvexit(). Add lockdepassertpreemptiondisabled() to scxclaim_exit() to enforce the requirement.

Affected Software

Componentlinux
VendorLinux
Maximum version41423912f7ac7494ccd6eef411227b4efce740e0
Fixed in41423912f7ac7494ccd6eef411227b4efce740e0

Timeline

  1. Reserved
  2. Published

How to fix

Aplicar la actualización del kernel a la versión 6.12.1 o superior.  Esta actualización corrige una condición de carrera que puede provocar un bloqueo del sistema.  Se recomienda actualizar el sistema lo antes posible para mitigar el riesgo.

Is your project affected?

Upload your dependency file and we'll tell you instantly if this and other CVEs hit you.

livefree scan

Try it now — no account

Upload any manifest (composer.lock, package-lock.json, WordPress plugin list…) or paste your component list. You get a vulnerability report instantly. Uploading a file is just the start: with an account you get continuous monitoring, Slack/email alerts, multi-project and white-label reports.

Manual scanSlack/email alertsContinuous monitoringWhite-label reports

Drag & drop your dependency file

composer.lock, package-lock.json, requirements.txt, Gemfile.lock, pubspec.lock, Dockerfile...