CVE-2024-56759

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

CVSS 7.8 · Élevée
EPSS 0.2%
Linux•Linux•Versions : 6.13, <=6.1.*, <=6.12.*, 6.12.8, 3083ee2e18b701122a3b841db83448543a87a583, 0, <c3a403d8ce36f5a809a492581de5ad17843e4701, 5.10.233, 5.15.176, <9a466b8693b9add05de99af00c7bdff8259ecf19, <ba5120a2fb5f23b4d39d302e181aa5d4e28a90d1, <=5.10.*, <=6.6.*, <66376f1a73cba57fd0af2631d7888605b738e499, 6.1.124, 6.6.70, <44f52bbe96dfdbe4aca3818a2534520082a07040, <526ff5b27f090fb15040471f892cd2c9899ce314, <=*, 3.4, <=5.15.*, <3.4

Description

In the Linux kernel, the following vulnerability has been resolved: btrfs: fix use-after-free when COWing tree bock and tracing is enabled When a COWing a tree block, at btrfs_cow_block(), and we have the tracepoint trace_btrfs_cow_block() enabled and preemption is also enabled (CONFIG_PREEMPT=y), we can trigger a use-after-free in the COWed extent buffer while inside the tracepoint code. This is because in some paths that call btrfs_cow_block(), such as btrfs_search_slot(), we are holding the last reference on the extent buffer @buf so btrfs_force_cow_block() drops the last reference on the @buf extent buffer when it calls free_extent_buffer_stale(buf), which schedules the release of the extent buffer with RCU. This means that if we are on a kernel with preemption, the current task may be preempted before calling trace_btrfs_cow_block() and the extent buffer already released by the time trace_btrfs_cow_block() is called, resulting in a use-after-free. Fix this by moving the trace_btrfs_cow_block() from btrfs_cow_block() to btrfs_force_cow_block() before the COWed extent buffer is freed. This also has a side effect of invoking the tracepoint in the tree defrag code, at defrag.c:btrfs_realloc_node(), since btrfs_force_cow_block() is called there, but this is fine and it was actually missing there.

Gravité et risque d'exploitation

CVE-2024-56759 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.22 %, ce qui la place devant 11.9 % des CVE référencées.

Que faire ?

  • Vérifiez si Linux (versions 6.13, <=6.1.*, <=6.12.*, 6.12.8, 3083ee2e18b701122a3b841db83448543a87a583, 0, <c3a403d8ce36f5a809a492581de5ad17843e4701, 5.10.233, 5.15.176, <9a466b8693b9add05de99af00c7bdff8259ecf19, <ba5120a2fb5f23b4d39d302e181aa5d4e28a90d1, <=5.10.*, <=6.6.*, <66376f1a73cba57fd0af2631d7888605b738e499, 6.1.124, 6.6.70, <44f52bbe96dfdbe4aca3818a2534520082a07040, <526ff5b27f090fb15040471f892cd2c9899ce314, <=*, 3.4, <=5.15.*, <3.4) 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