---
id: CVE-2024-56672
title: |-
  In the Linux kernel, the following vulnerability has been resolved:

  blk-cgroup: Fix UAF in blkcg_unpin_online()

  blkcg_unpin_online() walks up the blkcg hierarchy putting the online pin
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  blk-cgroup: Fix UAF in blkcg_unpin_online()

  blkcg_unpin_online() walks up the blkcg hierarchy putting the online pin. To
  walk up, it uses blkcg_parent(blkcg) but it wa…
severity: high
cvss: 7.8
cvssVector: 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'
cwe:
  - CWE-416
vendor: linux
product: linux_kernel
affected:
  - 'linux_kernel >= 5.7, < 6.1.121'
  - 'linux_kernel >= 6.2, < 6.6.67'
  - 'linux_kernel >= 6.7, < 6.12.6'
  - linux_kernel = 6.13
patched:
  - linux_kernel 6.12.6
published: '2024-12-27'
updated: '2026-10-15'
sourceUpdated: '2026-10-15T02:17:09.747'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2024-56672'
references:
  - url: 'https://git.kernel.org/stable/c/29d1e06560f0f6179062ac638b4064deb637d1ad'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/5baa28569c924d9a90d036c2aaab79f791fedaf8'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/64afc6fe24c9896c0153e5a199bcea241ecb0d5c'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/83f5a87ee8caa76a917f59912a74d6811f773c67'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/86e6ca55b83c575ab0f2e105cf08f98e58d3d7af'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/8a07350fe070017a887433f4d6909433955be5f1'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://lists.debian.org/debian-lts-announce/2025/03/msg00001.html'
    label: af854a3a-2127-422b-91ae-364da2661108
  - url: 'https://lists.debian.org/debian-lts-announce/2025/03/msg00002.html'
    label: af854a3a-2127-422b-91ae-364da2661108
  - url: 'https://cert-portal.siemens.com/productcert/html/ssa-265688.html'
    label: 0b142b55-0307-4c5a-b3c9-f314f3fb7c5e
tags:
  - nvd
  - cve.org
epss: 0.00272
epssPercentile: 0.19439
ingestedAt: '2026-10-15T03:30:12.775Z'
ssvc:
  exploitation: none
  automatable: 'no'
  technicalImpact: total
  timestamp: '2025-02-10T17:12:31.915249Z'
---

## Overview

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

blk-cgroup: Fix UAF in blkcg_unpin_online()

blkcg_unpin_online() walks up the blkcg hierarchy putting the online pin. To
walk up, it uses blkcg_parent(blkcg) but it was calling that after
blkcg_destroy_blkgs(blkcg) which could free the blkcg, leading to the
following UAF:

  ==================================================================
  BUG: KASAN: slab-use-after-free in blkcg_unpin_online+0x15a/0x270
  Read of size 8 at addr ffff8881057678c0 by task kworker/9:1/117

  CPU: 9 UID: 0 PID: 117 Comm: kworker/9:1 Not tainted 6.13.0-rc1-work-00182-gb8f52214c61a-dirty #48
  Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS unknown 02/02/2022
  Workqueue: cgwb_release cgwb_release_workfn
  Call Trace:
   <TASK>
   dump_stack_lvl+0x27/0x80
   print_report+0x151/0x710
   kasan_report+0xc0/0x100
   blkcg_unpin_online+0x15a/0x270
   cgwb_release_workfn+0x194/0x480
   process_scheduled_works+0x71b/0xe20
   worker_thread+0x82a/0xbd0
   kthread+0x242/0x2c0
   ret_from_fork+0x33/0x70
   ret_from_fork_asm+0x1a/0x30
   </TASK>
  ...
  Freed by task 1944:
   kasan_save_track+0x2b/0x70
   kasan_save_free_info+0x3c/0x50
   __kasan_slab_free+0x33/0x50
   kfree+0x10c/0x330
   css_free_rwork_fn+0xe6/0xb30
   process_scheduled_works+0x71b/0xe20
   worker_thread+0x82a/0xbd0
   kthread+0x242/0x2c0
   ret_from_fork+0x33/0x70
   ret_from_fork_asm+0x1a/0x30

Note that the UAF is not easy to trigger as the free path is indirected
behind a couple RCU grace periods and a work item execution. I could only
trigger it with artifical msleep() injected in blkcg_unpin_online().

Fix it by reading the parent pointer before destroying the blkcg's blkg's.

## Affected

- `linux_kernel >= 5.7, < 6.1.121`
- `linux_kernel >= 6.2, < 6.6.67`
- `linux_kernel >= 6.7, < 6.12.6`
- `linux_kernel = 6.13`

## Remediation

Upgrade past the affected range:

- `linux_kernel 6.12.6`
