Cloudanix VulnDB

CVE-2023-54107

High · 7.8

CVSS

7.8

EPSS

0.2%

Published

Dec 24, 2025

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

A memory management error in the Linux kernel's storage control groups can cause system crashes or allow unauthorized access if triggered by an attacker.

Exploitation
Local Privilege
Attacker needs
Local User
Complexity
Moderate
Impact
Full Compromise
Component
OS kernel
Class
Use After Free
Remediation
Patch
Effort
Medium
Patch risk
Low

What it actually does

Use-after-free in blk-cgroup where parent blkg refcount is dropped in __blkg_release before child pd_free_fn executes in the asynchronous blkg_free_work_fn, allowing child policies to dereference a freed parent pd structure.

Why it matters to the business

Kernel instability, crashes, or potential local privilege escalation on Linux systems using cgroups with block I/O policies, increasing downtime risk for servers and container workloads.

How an attack unfolds

An attacker triggers concurrent cgroup creation/deletion and blkcg policy deactivation to race parent pd_free_fn with child access, exploiting the refcount ordering flaw to read or write freed memory.

How to fix it

Upgrade the Linux kernel to a version containing commit c7241babf0855d8a6180cd1743ff0ec34de40b4e which delays parent refcount drop until after all child pd_free_fn calls complete.

How to confirm the fix worked

Confirm the patch is present by checking that __blkg_release no longer drops the parent refcount and that blkg_free_work_fn ordering guarantees pd_free_fn completion first.

Typical attack path

  1. Create nested cgroups with blkio or io controllers enabled
  2. Trigger rapid cgroup removal while holding references to parent pd
  3. Invoke blkcg_deactivate_policy or device deletion to schedule blkg_free_work_fn
  4. Access the parent pd through the child after the parent structure is freed

How to detect it

Inspect kernel logs and dmesg for use-after-free warnings, oops, or panic messages referencing blkg_free_work_fn, __blkg_release, or pd_free_fn; correlate with processes performing rapid cgroup blkio operations.

  • blkg_free_work_fn
  • __blkg_release
  • pd_free_fn
  • blk-cgroup UAF

What your security team should do

  • Apply the referenced kernel commit or newer stable release immediately
  • Restrict unprivileged users from creating or manipulating blk-cgroup hierarchies
  • Enable kernel hardening features such as KASAN or page allocator freelist randomization for early detection

The record

In the Linux kernel, the following vulnerability has been resolved: blk-cgroup: dropping parent refcount after pd_free_fn() is done Some cgroup policies will access parent pd through child pd even after pd_offline_fn() is done. If pd_free_fn() for parent is called before child, then UAF can be triggered. Hence it's better to guarantee the order of pd_free_fn(). Currently refcount of parent blkg is dropped in __blkg_release(), which is before pd_free_fn() is called in blkg_free_work_fn() while blkg_free_work_fn() is called asynchronously. This patch make sure pd_free_fn() called from removing cgroup is ordered by delaying dropping parent refcount after calling pd_free_fn() for child. BTW, pd_free_fn() will also be called from blkcg_deactivate_policy() from deleting device, and following patches will guarantee the order.

Affected packages

Ecosystem Package Introduced Fixed
SUSE:Linux Enterprise Micro 5.5 kernel-rt 0 5.14.21-150500.13.118.1
SUSE:Linux Enterprise Micro 5.5 kernel-source-rt 0 5.14.21-150500.13.118.1

Related vulnerabilities