CVE-2025-40061

Vulnérabilité élevée dans Linux (Linux)

CVSS 7.8 · Élevée
EPSS 0.1%
Linux•Linux•Versions : <85288bcf7ffe11e7b036edf91937bc62fd384076, <=*, 6.6.112, <=6.12.*, 9b4b7c1f9f54120940e243251e2b1407767b3381, <52edccfb555142678c836c285bf5b4ec760bd043, 6.12.53, <=6.17.*, 6.18, 6.17.3, 6.5, <8ca7eada62fcfabf6ec1dc7468941e791c1d8729, <6.5, <=6.6.*, 0, <660b6959c4170637f5db2279d1f71af33a49e49b

Description

In the Linux kernel, the following vulnerability has been resolved: RDMA/rxe: Fix race in do_task() when draining When do_task() exhausts its iteration budget (!ret), it sets the state to TASK_STATE_IDLE to reschedule, without a secondary check on the current task->state. This can overwrite the TASK_STATE_DRAINING state set by a concurrent call to rxe_cleanup_task() or rxe_disable_task(). While state changes are protected by a spinlock, both rxe_cleanup_task() and rxe_disable_task() release the lock while waiting for the task to finish draining in the while(!is_done(task)) loop. The race occurs if do_task() hits its iteration limit and acquires the lock in this window. The cleanup logic may then proceed while the task incorrectly reschedules itself, leading to a potential use-after-free. This bug was introduced during the migration from tasklets to workqueues, where the special handling for the draining case was lost. Fix this by restoring the original pre-migration behavior. If the state is TASK_STATE_DRAINING when iterations are exhausted, set cont to 1 to force a new loop iteration. This allows the task to finish its work, so that a subsequent iteration can reach the switch statement and correctly transition the state to TASK_STATE_DRAINED, stopping the task as intended.

Gravité et risque d'exploitation

CVE-2025-40061 obtient un score CVSS de 7.8/10, soit une gravité élevée. Selon le modèle EPSS, la probabilité qu'elle soit exploitée dans les 30 prochains jours est de 0.15 %, ce qui la place devant 3.8 % des CVE référencées.

Que faire ?

  • Vérifiez si Linux (versions <85288bcf7ffe11e7b036edf91937bc62fd384076, <=*, 6.6.112, <=6.12.*, 9b4b7c1f9f54120940e243251e2b1407767b3381, <52edccfb555142678c836c285bf5b4ec760bd043, 6.12.53, <=6.17.*, 6.18, 6.17.3, 6.5, <8ca7eada62fcfabf6ec1dc7468941e791c1d8729, <6.5, <=6.6.*, 0, <660b6959c4170637f5db2279d1f71af33a49e49b) est présent sur votre parc.
  • Appliquez le correctif ou la version corrigée indiqués dans les références de l'éditeur.
  • À défaut de correctif, limitez l'exposition (filtrage réseau, désactivation du composant).
  • Automatisez la détection : les agents CVE Heimdall (gratuits, open source) corrèlent l'inventaire de vos serveurs avec la base CVE.

Références