CVE-2022-49554
published 2025-02-26CVE-2022-49554: In the Linux kernel, the following vulnerability has been resolved: zsmalloc: fix races between asynchronous zspage free and page migration The asynchronous…
PriorityP416medium4.7CVSS 3.1
AVLACHPRLUINSUCNINAH
EPSS
0.22%
12.2th percentile
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
21 ranges
| Vendor | Product | Version range | Fixed in |
|---|---|---|---|
| debian | linux | < linux 5.18.2-1 (bookworm) | linux 5.18.2-1 (bookworm) |
| linux | linux | — | — |
| linux | linux | >= 77ff465799c60294e248000cd22ae8171da3304c < 3674d8a8dadd03a447dd21069d4dacfc3399b63b | 3674d8a8dadd03a447dd21069d4dacfc3399b63b |
| linux | linux | >= 77ff465799c60294e248000cd22ae8171da3304c < 645996efc2ae391246d595832aaa6f9d3cc338c7 | 645996efc2ae391246d595832aaa6f9d3cc338c7 |
| linux | linux | >= 77ff465799c60294e248000cd22ae8171da3304c < fc658c083904427abbf8f18280d517ee2668677c | fc658c083904427abbf8f18280d517ee2668677c |
| linux | linux | >= 77ff465799c60294e248000cd22ae8171da3304c < fae05b2314b147a78fbed1dc4c645d9a66313758 | fae05b2314b147a78fbed1dc4c645d9a66313758 |
| linux | linux | >= 77ff465799c60294e248000cd22ae8171da3304c < 3ec459c8810e658401be428d3168eacfc380bdd0 | 3ec459c8810e658401be428d3168eacfc380bdd0 |
| linux | linux | >= 77ff465799c60294e248000cd22ae8171da3304c < 8ba7b7c1dad1f6503c541778f31b33f7f62eb966 | 8ba7b7c1dad1f6503c541778f31b33f7f62eb966 |
| linux | linux | >= 77ff465799c60294e248000cd22ae8171da3304c < c5402fb5f71f1a725f1e55d9c6799c0c7bec308f | c5402fb5f71f1a725f1e55d9c6799c0c7bec308f |
| linux | linux | >= 77ff465799c60294e248000cd22ae8171da3304c < 2505a981114dcb715f8977b8433f7540854851d8 | 2505a981114dcb715f8977b8433f7540854851d8 |
| linux | linux_kernel | >= 0 < 5.10.120-1 | 5.10.120-1 |
| linux | linux_kernel | >= 0 < 5.18.2-1 | 5.18.2-1 |
| linux | linux_kernel | >= 0 < 5.18.2-1 | 5.18.2-1 |
| linux | linux_kernel | >= 0 < 5.18.2-1 | 5.18.2-1 |
| linux | linux_kernel | >= 4.14 < 4.14.282 | 4.14.282 |
| linux | linux_kernel | >= 4.15 < 4.19.246 | 4.19.246 |
| linux | linux_kernel | >= 4.20 < 5.4.197 | 5.4.197 |
| linux | linux_kernel | >= 5.11 < 5.15.45 | 5.15.45 |
| linux | linux_kernel | >= 5.16 < 5.17.13 | 5.17.13 |
| linux | linux_kernel | >= 5.18 < 5.18.2 | 5.18.2 |
| linux | linux_kernel | >= 5.5 < 5.10.120 | 5.10.120 |
CVSS provenance
nvdv3.14.7MEDIUMCVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H
osv4.7MEDIUM
vendor_debian4.7MEDIUM
vendor_redhat4.7MEDIUM
Stop checking back — get the weekly exploitation signal.
Every Monday: what got weaponized or added to CISA KEV in the last seven days — each CVE cross-linked to its PoC, Nuclei template, and detection rule. Free, one email a week, unsubscribe in one click.
GHSA
GHSA-wv76-pjmf-rxjc: In the Linux kernel, the following vulnerability has been resolved:
zsmalloc: fix races between asynchronous zspage free and page migration
The asyn
ghsa_unreviewed·2025-10-22
CVE-2022-49554 [MEDIUM] CWE-362 GHSA-wv76-pjmf-rxjc: In the Linux kernel, the following vulnerability has been resolved:
zsmalloc: fix races between asynchronous zspage free and page migration
The asyn
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 pa
OSV
CVE-2022-49554: In the Linux kernel, the following vulnerability has been resolved: zsmalloc: fix races between asynchronous zspage free and page migration The asynch
osv·2025-02-26·CVSS 4.7
CVE-2022-49554 [MEDIUM] CVE-2022-49554: In the Linux kernel, the following vulnerability has been resolved: zsmalloc: fix races between asynchronous zspage free and page migration The asynch
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
Red Hat
kernel: zsmalloc: fix races between asynchronous zspage free and page migration
vendor_redhat·2025-02-26·CVSS 4.7
CVE-2022-49554 [MEDIUM] kernel: zsmalloc: fix races between asynchronous zspage free and page migration
kernel: zsmalloc: fix races between asynchronous zspage free and page migration
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 th
Debian
CVE-2022-49554: linux - In the Linux kernel, the following vulnerability has been resolved: zsmalloc: f...
vendor_debian·2022·CVSS 4.7
CVE-2022-49554 [MEDIUM] CVE-2022-49554: linux - In the Linux kernel, the following vulnerability has been resolved: zsmalloc: f...
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
No detection rules found.
No public exploits indexed.
https://git.kernel.org/stable/c/2505a981114dcb715f8977b8433f7540854851d8https://git.kernel.org/stable/c/3674d8a8dadd03a447dd21069d4dacfc3399b63bhttps://git.kernel.org/stable/c/3ec459c8810e658401be428d3168eacfc380bdd0https://git.kernel.org/stable/c/645996efc2ae391246d595832aaa6f9d3cc338c7https://git.kernel.org/stable/c/8ba7b7c1dad1f6503c541778f31b33f7f62eb966https://git.kernel.org/stable/c/c5402fb5f71f1a725f1e55d9c6799c0c7bec308fhttps://git.kernel.org/stable/c/fae05b2314b147a78fbed1dc4c645d9a66313758https://git.kernel.org/stable/c/fc658c083904427abbf8f18280d517ee2668677c
2025-02-26
Published