Vulnerability · Published Feb 26, 2025 · Assigned by Linux
CVE-2022-49554zsmalloc: fix races between asynchronous zspage free and page migration
High 7.8
In plain English
A high-severity security flaw in Linux from Linux. There are no confirmed reports of exploitation so far. The chance it is exploited in the next 30 days is estimated at 0.2% (higher than 12% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.
Official 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 packages & fixed versions
| Ecosystem | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian:12 | linux | 5.18.2-1 | DEBIAN-CVE-2022-49554 |
| Debian:13 | linux | 5.18.2-1 | DEBIAN-CVE-2022-49554 |
| Debian:14 | linux | 5.18.2-1 | DEBIAN-CVE-2022-49554 |
| Ubuntu:22.04:LTS | linux | 5.15.0-47.51 | UBUNTU-CVE-2022-49554 |
| Ubuntu:22.04:LTS | linux-allwinner-5.19 | no fix listed | UBUNTU-CVE-2022-49554 |
| Ubuntu:22.04:LTS | linux-aws | 5.15.0-1019.23 | UBUNTU-CVE-2022-49554 |
| Ubuntu:22.04:LTS | linux-aws-5.19 | no fix listed | UBUNTU-CVE-2022-49554 |
| Ubuntu:22.04:LTS | linux-aws-6.2 | no fix listed | UBUNTU-CVE-2022-49554 |
| Ubuntu:22.04:LTS | linux-aws-6.5 | no fix listed | UBUNTU-CVE-2022-49554 |
| Ubuntu:22.04:LTS | linux-azure | 5.15.0-1019.24 | UBUNTU-CVE-2022-49554 |
| Ubuntu:22.04:LTS | linux-azure-5.19 | no fix listed | UBUNTU-CVE-2022-49554 |
| Ubuntu:22.04:LTS | linux-azure-6.2 | no fix listed | UBUNTU-CVE-2022-49554 |
| Ubuntu:22.04:LTS | linux-azure-6.5 | no fix listed | UBUNTU-CVE-2022-49554 |
| Ubuntu:22.04:LTS | linux-azure-fde-5.19 | no fix listed | UBUNTU-CVE-2022-49554 |
| Ubuntu:22.04:LTS | linux-azure-fde-6.2 | no fix listed | UBUNTU-CVE-2022-49554 |
| Ubuntu:22.04:LTS | linux-gcp | 5.15.0-1017.23 | UBUNTU-CVE-2022-49554 |
| Ubuntu:22.04:LTS | linux-gcp-5.19 | no fix listed | UBUNTU-CVE-2022-49554 |
| Ubuntu:22.04:LTS | linux-gcp-6.2 | no fix listed | UBUNTU-CVE-2022-49554 |
| Ubuntu:22.04:LTS | linux-gcp-6.5 | no fix listed | UBUNTU-CVE-2022-49554 |
| Ubuntu:22.04:LTS | linux-gke | 5.15.0-1015.18 | UBUNTU-CVE-2022-49554 |
| Ubuntu:22.04:LTS | linux-gkeop | 5.15.0-1002.4 | UBUNTU-CVE-2022-49554 |
| Ubuntu:22.04:LTS | linux-hwe-5.19 | no fix listed | UBUNTU-CVE-2022-49554 |
| Ubuntu:22.04:LTS | linux-hwe-6.2 | no fix listed | UBUNTU-CVE-2022-49554 |
| Ubuntu:22.04:LTS | linux-hwe-6.5 | no fix listed | UBUNTU-CVE-2022-49554 |
| Ubuntu:22.04:LTS | linux-ibm | 5.15.0-1013.15 | UBUNTU-CVE-2022-49554 |
| Ubuntu:22.04:LTS | linux-intel-iot-realtime | no fix listed | UBUNTU-CVE-2022-49554 |
| Ubuntu:22.04:LTS | linux-intel-iotg | 5.15.0-1015.20 | UBUNTU-CVE-2022-49554 |
| Ubuntu:22.04:LTS | linux-kvm | 5.15.0-1017.21 | UBUNTU-CVE-2022-49554 |
| Ubuntu:22.04:LTS | linux-lowlatency | 5.15.0-47.53 | UBUNTU-CVE-2022-49554 |
| Ubuntu:22.04:LTS | linux-lowlatency-hwe-5.19 | no fix listed | UBUNTU-CVE-2022-49554 |
| Ubuntu:22.04:LTS | linux-lowlatency-hwe-6.2 | no fix listed | UBUNTU-CVE-2022-49554 |
| Ubuntu:22.04:LTS | linux-lowlatency-hwe-6.5 | no fix listed | UBUNTU-CVE-2022-49554 |
| Ubuntu:22.04:LTS | linux-nvidia | 5.15.0-1007.7 | UBUNTU-CVE-2022-49554 |
| Ubuntu:22.04:LTS | linux-nvidia-6.2 | no fix listed | UBUNTU-CVE-2022-49554 |
| Ubuntu:22.04:LTS | linux-nvidia-6.5 | no fix listed | UBUNTU-CVE-2022-49554 |
| Ubuntu:22.04:LTS | linux-oem-5.17 | no fix listed | UBUNTU-CVE-2022-49554 |
| Ubuntu:22.04:LTS | linux-oem-6.0 | no fix listed | UBUNTU-CVE-2022-49554 |
| Ubuntu:22.04:LTS | linux-oem-6.1 | no fix listed | UBUNTU-CVE-2022-49554 |
| Ubuntu:22.04:LTS | linux-oem-6.5 | no fix listed | UBUNTU-CVE-2022-49554 |
| Ubuntu:22.04:LTS | linux-oracle | 5.15.0-1017.22 | UBUNTU-CVE-2022-49554 |
| Ubuntu:22.04:LTS | linux-oracle-6.5 | no fix listed | UBUNTU-CVE-2022-49554 |
| Ubuntu:22.04:LTS | linux-raspi | 5.15.0-1014.16 | UBUNTU-CVE-2022-49554 |
| Ubuntu:24.04:LTS | linux-raspi-realtime | no fix listed | UBUNTU-CVE-2022-49554 |
| Ubuntu:22.04:LTS | linux-realtime | no fix listed | UBUNTU-CVE-2022-49554 |
| Ubuntu:22.04:LTS | linux-riscv | no fix listed | UBUNTU-CVE-2022-49554 |
| Ubuntu:22.04:LTS | linux-riscv-5.19 | no fix listed | UBUNTU-CVE-2022-49554 |
| Ubuntu:22.04:LTS | linux-riscv-6.5 | no fix listed | UBUNTU-CVE-2022-49554 |
| Ubuntu:22.04:LTS | linux-starfive-5.19 | no fix listed | UBUNTU-CVE-2022-49554 |
| Ubuntu:22.04:LTS | linux-starfive-6.2 | no fix listed | UBUNTU-CVE-2022-49554 |
| Ubuntu:22.04:LTS | linux-starfive-6.5 | no fix listed | UBUNTU-CVE-2022-49554 |
Affected products (as reported)
| Vendor | Product | Versions |
|---|---|---|
| Linux | Linux | 77ff465799c60294e248000cd22ae8171da3304c – before 3674d8a8dadd03a447dd21069d4dacfc3399b63b77ff465799c60294e248000cd22ae8171da3304c – before 645996efc2ae391246d595832aaa6f9d3cc338c777ff465799c60294e248000cd22ae8171da3304c – before fc658c083904427abbf8f18280d517ee2668677c77ff465799c60294e248000cd22ae8171da3304c – before fae05b2314b147a78fbed1dc4c645d9a6631375877ff465799c60294e248000cd22ae8171da3304c – before 3ec459c8810e658401be428d3168eacfc380bdd077ff465799c60294e248000cd22ae8171da3304c – before 8ba7b7c1dad1f6503c541778f31b33f7f62eb96677ff465799c60294e248000cd22ae8171da3304c – before c5402fb5f71f1a725f1e55d9c6799c0c7bec308f77ff465799c60294e248000cd22ae8171da3304c – before 2505a981114dcb715f8977b8433f7540854851d8 |
| Linux | Linux | 4.14 |
References
- https://git.kernel.org/stable/c/3674d8a8dadd03a447dd21069d4dacfc3399b63b
- https://git.kernel.org/stable/c/645996efc2ae391246d595832aaa6f9d3cc338c7
- https://git.kernel.org/stable/c/fc658c083904427abbf8f18280d517ee2668677c
- https://git.kernel.org/stable/c/fae05b2314b147a78fbed1dc4c645d9a66313758
- https://git.kernel.org/stable/c/3ec459c8810e658401be428d3168eacfc380bdd0
- https://git.kernel.org/stable/c/8ba7b7c1dad1f6503c541778f31b33f7f62eb966
- https://git.kernel.org/stable/c/c5402fb5f71f1a725f1e55d9c6799c0c7bec308f
- https://git.kernel.org/stable/c/2505a981114dcb715f8977b8433f7540854851d8