---
id: CVE-2023-53522
title: 'cgroup,freezer: hold cpu_hotplug_lock before freezer_mutex'
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  cgroup,freezer: hold cpu_hotplug_lock before freezer_mutex

  syzbot is reporting circular locking dependency between cpu_hotplug_lock
  and freezer_mutex, for commit f5d39…
severity: none
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= f5d39b020809146cc28e6e73369bf8065e0310aa <
    3756171b97c307d9df8b8ded1d883eec30172085
  - >-
    Linux >= f5d39b020809146cc28e6e73369bf8065e0310aa <
    34fbb7b45bae20b551dda24337c7761ca13ce69d
  - >-
    Linux >= f5d39b020809146cc28e6e73369bf8065e0310aa <
    57dcd64c7e036299ef526b400a8d12b8a2352f26
  - Linux 6.1
ssvc:
  exploitation: none
  automatable: 'no'
  technicalImpact: partial
  timestamp: '2026-11-05T20:23:05.576126Z'
published: '2025-10-01'
updated: '2026-11-05'
sourceUpdated: '2026-11-05T20:31:13.300Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2023-53522'
references:
  - url: 'https://git.kernel.org/stable/c/3756171b97c307d9df8b8ded1d883eec30172085'
  - url: 'https://git.kernel.org/stable/c/34fbb7b45bae20b551dda24337c7761ca13ce69d'
  - url: 'https://git.kernel.org/stable/c/57dcd64c7e036299ef526b400a8d12b8a2352f26'
tags:
  - cve.org
epss: 0.00154
epssPercentile: 0.0459
ingestedAt: '2026-11-05T22:38:31.806Z'
---

## Overview

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

cgroup,freezer: hold cpu_hotplug_lock before freezer_mutex

syzbot is reporting circular locking dependency between cpu_hotplug_lock
and freezer_mutex, for commit f5d39b020809 ("freezer,sched: Rewrite core
freezer logic") replaced atomic_inc() in freezer_apply_state() with
static_branch_inc() which holds cpu_hotplug_lock.

cpu_hotplug_lock => cgroup_threadgroup_rwsem => freezer_mutex

  cgroup_file_write() {
    cgroup_procs_write() {
      __cgroup_procs_write() {
        cgroup_procs_write_start() {
          cgroup_attach_lock() {
            cpus_read_lock() {
              percpu_down_read(&cpu_hotplug_lock);
            }
            percpu_down_write(&cgroup_threadgroup_rwsem);
          }
        }
        cgroup_attach_task() {
          cgroup_migrate() {
            cgroup_migrate_execute() {
              freezer_attach() {
                mutex_lock(&freezer_mutex);
                (...snipped...)
              }
            }
          }
        }
        (...snipped...)
      }
    }
  }

freezer_mutex => cpu_hotplug_lock

  cgroup_file_write() {
    freezer_write() {
      freezer_change_state() {
        mutex_lock(&freezer_mutex);
        freezer_apply_state() {
          static_branch_inc(&freezer_active) {
            static_key_slow_inc() {
              cpus_read_lock();
              static_key_slow_inc_cpuslocked();
              cpus_read_unlock();
            }
          }
        }
        mutex_unlock(&freezer_mutex);
      }
    }
  }

Swap locking order by moving cpus_read_lock() in freezer_apply_state()
to before mutex_lock(&freezer_mutex) in freezer_change_state().

## Affected

- `Linux >= f5d39b020809146cc28e6e73369bf8065e0310aa < 3756171b97c307d9df8b8ded1d883eec30172085`
- `Linux >= f5d39b020809146cc28e6e73369bf8065e0310aa < 34fbb7b45bae20b551dda24337c7761ca13ce69d`
- `Linux >= f5d39b020809146cc28e6e73369bf8065e0310aa < 57dcd64c7e036299ef526b400a8d12b8a2352f26`
- `Linux 6.1`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
