CVE-2022-49554

zsmalloc: fix races between asynchronous zspage free and page migration

MEDIUM
4.7
CVSS Score
Published: February 26, 2025 at 02:14 AM UTC
Updated: October 15, 2026 at 10:17 PM UTC
1 product affected across 1 vendorLinux Kernel

Using Linux by Linux?

Get instant alerts when new vulnerabilities affect Linux - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
MEDIUM4.7
Exploit prediction
EPSS 0.2%
SSVC
No known exploit

Description

In the Linux kernel, the following vulnerability has been resolved: zsmalloc: fix races between asynchronous zspage free and page migration The asynchronous zspage free worker tries to lock a zspage's entire page list without defending against page migration. Since pages which haven't yet been locked can concurrently migrate off the zspage page list while lock_zspage() churns away, lock_zspage() can suffer from a few different lethal races. It can lock a page which no longer belongs to the zspage and unsafely dereference page_private(), it can unsafely dereference a torn pointer to the next page (since there's a data race), and it can observe a spurious NULL pointer to the next page and thus not lock all of the zspage's pages (since a single page migration will reconstruct the entire page list, and create_page_chain() unconditionally zeroes out each list pointer in the process). Fix the races by using migrate_read_lock() in lock_zspage() to synchronize with page migration.

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

4.14 ≤ v < 4.14.2824.15 ≤ v < 4.19.2464.20 ≤ v < 5.4.1975.11 ≤ v < 5.15.455.16 ≤ v < 5.17.135.18 ≤ v < 5.18.25.5 ≤ v < 5.10.1204.1477ff465799c60294e248000cd22ae8171da3304c
Vendor states this is fixed in 2505a981114dcb715f8977b8433f7540854851d8 (fixed)
Vendor states this is fixed in 3674d8a8dadd03a447dd21069d4dacfc3399b63b (fixed)
Vendor states this is fixed in 3ec459c8810e658401be428d3168eacfc380bdd0 (fixed)
Vendor states this is fixed in 645996efc2ae391246d595832aaa6f9d3cc338c7 (fixed)
Vendor states this is fixed in 8ba7b7c1dad1f6503c541778f31b33f7f62eb966 (fixed)
Vendor states this is fixed in c5402fb5f71f1a725f1e55d9c6799c0c7bec308f (fixed)
Vendor states this is fixed in fae05b2314b147a78fbed1dc4c645d9a66313758 (fixed)
Vendor states this is fixed in fc658c083904427abbf8f18280d517ee2668677c (fixed)
Vendor states this is fixed in 4.14 (unaffected)
Vendor states this is fixed in 4.14.282 (unaffected)
Vendor states this is fixed in 4.19.246 (unaffected)
Vendor states this is fixed in 5.10.120 (unaffected)
Vendor states this is fixed in 5.15.45 (unaffected)
Vendor states this is fixed in 5.17.13 (unaffected)
Vendor states this is fixed in 5.18.2 (unaffected)
Vendor states this is fixed in 5.19 (unaffected)
Vendor states this is fixed in 5.4.197 (unaffected)

References (8)

Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/2505a981114dcb715f8977b8433f7540854851d8
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/3674d8a8dadd03a447dd21069d4dacfc3399b63b
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/3ec459c8810e658401be428d3168eacfc380bdd0
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/645996efc2ae391246d595832aaa6f9d3cc338c7
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/8ba7b7c1dad1f6503c541778f31b33f7f62eb966
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/c5402fb5f71f1a725f1e55d9c6799c0c7bec308f
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/fae05b2314b147a78fbed1dc4c645d9a66313758
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/fc658c083904427abbf8f18280d517ee2668677c

SSVC — Action Prioritization

SSVCNo known exploitNot automatableTotal impact

SSVC signals action urgency (what to patch first), separate from CVSS which measures severity.

CVSS

Attack Vector
LOCAL
Complexity
HIGH
Privileges
LOW
User Interaction
NONE
Scope
UNCHANGED
Confidentiality
NONE
Integrity
NONE
Availability
HIGH
Vector?

Quick Info

StatusMODIFIED
CWE
CWE-362

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card