CVE-2022-50563 json
dm thin: Fix UAF in run_timer_softirq()
published 2025-10-22 12 mo ago modified 2026-06-17 4 mo ago also EUVD-2022-55665
- cvss
- —
- not scored
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.2%
- EPSS 0.2% chance of exploitation in 30 days, percentile 16%
- public exploits
- 0
- none known
Summary
In the Linux kernel, the following vulnerability has been resolved:
dm thin: Fix UAF in run_timer_softirq()
When dm_resume() and dm_destroy() are concurrent, it will lead to UAF, as follows:
BUG: KASAN: use-after-free in __run_timers+0x173/0x710 Write of size 8 at addr ffff88816d9490f0 by task swapper/0/0 <snip> Call Trace: <IRQ> dump_stack_lvl+0x73/0x9f print_report.cold+0x132/0xaa2 _raw_spin_lock_irqsave+0xcd/0x160 __run_timers+0x173/0x710 kasan_report+0xad/0x110 __run_timers+0x173/0x710 __asan_store8+0x9c/0x140 __run_timers+0x173/0x710 call_timer_fn+0x310/0x310 pvclock_clocksource_read+0xfa/0x250 kvm_clock_read+0x2c/0x70 kvm_clock_get_cycles+0xd/0x20 ktime_get+0x5c/0x110 lapic_next_event+0x38/0x50 clockevents_program_event+0xf1/0x1e0 run_timer_softirq+0x49/0x90 __do_softirq+0x16e/0x62c __irq_exit_rcu+0x1fa/0x270 irq_exit_rcu+0x12/0x20 sysvec_apic_timer_interrupt+0x8e/0xc0
One of the concurrency UAF can be shown as below:
use free do_resume | __find_device_hash_cell | dm_get | atomic_inc(&md->holders) | | dm_destroy | __dm_destroy | if (!dm_suspended_md(md)) | atomic_read(&md->holders) | msleep(1) dm_resume | __dm_resume | dm_table_resume_targets | pool_resume | do_waker #add delay work | dm_put | atomic_dec(&md->holders) | | dm_table_destroy | pool_dtr | __pool_dec | __pool_destroy | destroy_workqueue | kfree(pool) # free pool time out __do_softirq run_timer_softirq # pool has already been freed
This can be easily reproduced using: 1. create thin-pool 2. dmsetup suspend pool 3. dmsetup resume pool 4. dmsetup remove_all # Concurrent with 3
The root cause of this UAF bug is that dm_resume() adds timer after dm_destroy() skips cancelling the timer because of suspend status. After timeout, it will call run_timer_softirq(), however pool has already been freed. The concurrency UAF bug will happen.
Therefore, cancelling timer again in __pool_destroy().
Patch / fix
- Linux Linux 4.9.337, 4.14.303, 4.19.270, 5.4.229, 5.10.163, 5.15.87, 6.0.18, 6.1.4, 6.2
- linux Debian 14, Debian 13, Debian 12 6.1.4-1
debian advisories DEBIAN-CVE-2022-50563
- linux Ubuntu 18.04 LTS 4.15.0-208.220
- linux Ubuntu 20.04 LTS 5.4.0-144.161
- linux Ubuntu 22.04 LTS 5.15.0-69.76
- linux-aws Ubuntu 18.04 LTS 4.15.0-1153.166
- linux-aws Ubuntu 20.04 LTS 5.4.0-1097.105
- linux-aws Ubuntu 22.04 LTS 5.15.0-1033.37
- linux-gcp Ubuntu 20.04 LTS 5.4.0-1101.110
- linux-gcp Ubuntu 22.04 LTS 5.15.0-1031.38
ubuntu advisories UBUNTU-CVE-2022-50563
Ubuntu security data © Canonical Ltd., from https://github.com/canonical/ubuntu-security-notices via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
- kernel RHEL 9 5.14.0-284.11.1.el9_2
- perf RHEL 9 5.14.0-284.11.1.el9_2
- rtla RHEL 9 5.14.0-284.11.1.el9_2
- bpftool RHEL 9 7.0.0-284.11.1.el9_2
- kernel-64k RHEL 9 5.14.0-284.11.1.el9_2
- kernel-core RHEL 9 5.14.0-284.11.1.el9_2
- kernel-tools RHEL 9 5.14.0-284.11.1.el9_2
- python3-perf RHEL 9 5.14.0-284.11.1.el9_2
red hat advisories RHSA-2023:2458RHSA-2023:2951
- kernel-64kb SLES 15 SP5-LTSS, SLE High Performance Computing 15 SP5-LTSS, SLE High Performance Computing 15 SP5-ESPOS 5.14.21-150500.55.127.1
- kernel-syms SLES for SAP 15 SP5, SLES 15 SP5-LTSS, SLE High Performance Computing 15 SP5-LTSS +1 more 5.14.21-150500.55.127.1
- kernel-source SLES for SAP 15 SP5, SLES 15 SP5-LTSS, SLE Micro 5.5 +2 more 5.14.21-150500.55.127.1
- kernel-default SLES for SAP 15 SP5, SLES 15 SP5-LTSS, SLE Micro 5.5 +3 more 5.14.21-150500.55.127.1
- kernel-obs-build SLES for SAP 15 SP5, SLES 15 SP5-LTSS, SLE High Performance Computing 15 SP5-LTSS +1 more 5.14.21-150500.55.127.1
- kernel-default-base SLES for SAP 15 SP5, SLES 15 SP5-LTSS, SLE Micro 5.5 +2 more 5.14.21-150500.55.127.1.150500.6.61.1
- kernel-64kb SLES 15 SP3-LTSS, SLE High Performance Computing 15 SP3-LTSS, Enterprise Storage 7.1 5.3.18-150300.59.226.2
- kernel-syms SLES for SAP 15 SP3, SLES 15 SP3-LTSS, SLE High Performance Computing 15 SP3-LTSS +1 more 5.3.18-150300.59.226.1
suse advisories SUSE-SU-2025:4320-1SUSE-SU-2025:4189-1SUSE-SU-2025:4188-1SUSE-SU-2025:4149-1SUSE-SU-2025:4139-1SUSE-SU-2025:4135-1
- git.kernel.org/stable/c/7ee059d06a5d3c15465959e0472993e80fbe4e81 commit
- git.kernel.org/stable/c/550a4fac7ecfee5bac6a0dd772456ca62fb72f46 commit
- git.kernel.org/stable/c/e8b8e0d2bbf7d1172c4f435621418e29ee408d46 commit
- git.kernel.org/stable/c/7ae6aa649394e1e7f6dafb55ce0d578c0572a280 commit
- git.kernel.org/stable/c/34fe9c2251f19786a6689149a6212c6c0de1d63b commit
- git.kernel.org/stable/c/34cd15d83b7206188d440b29b68084fcafde9395 commit
- git.kernel.org/stable/c/94e231c9d6f2648d2f1f68e7f476e050ee0a6159 commit
- git.kernel.org/stable/c/d9971fa4d8bde63d49c743c1b32d12fbbd3a30bd commit
- git.kernel.org/stable/c/88430ebcbc0ec637b710b947738839848c20feff commit
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2022-50563 updated cvss 4.4
kernel: dm thin: Fix UAF in run_timer_softirq()
-
Red Hat Enterprise Linux 6 perf, kernel, python-perf, kernel-kdump, kernel-firmware, kernel-bootwrapper, +1 moreaffected: no fix planned “Out of support scope”
-
Red Hat Enterprise Linux 7 perf, kernel, bpftool, kernel-rt, python-perf, kernel-kdump, +8 more Red Hat Enterprise Linux 8 kernel-rt, kernel-rt-kvm, kernel-rt-core, kernel-rt-modules, kernel-rt-debug-kvm, kernel-rt-debug-core, +6 more Red Hat Enterprise Linux 9 kernel-rt, kernel-rt-kvm, kernel-rt-core, kernel-rt-modules, kernel-rt-debug-kvm, kernel-rt-debug-core, +12 moreaffected: no fix available “Fix deferred”
-
Red Hat Enterprise Linux AppStream (v. 9) perf 5.14.0-284.11.1.el9_2, rtla 5.14.0-284.11.1.el9_2, kernel-devel-matched 5.14.0-284.11.1.el9_2, kernel-64k-devel-matched 5.14.0-284.11.1.el9_2, kernel-debug-devel-matched 5.14.0-284.11.1.el9_2, kernel-debuginfo-common-s390x 5.14.0-284.11.1.el9_2, +5 morefixed: vendor fix RHSA-2023:2458
-
Red Hat Enterprise Linux BaseOS (v. 8) perf 4.18.0-477.10.1.el8_8, kernel 4.18.0-477.10.1.el8_8, bpftool 4.18.0-477.10.1.el8_8, kernel-core 4.18.0-477.10.1.el8_8, kernel-tools 4.18.0-477.10.1.el8_8, python3-perf 4.18.0-477.10.1.el8_8, +15 morefixed: vendor fix RHSA-2023:2951
-
Red Hat Enterprise Linux BaseOS (v. 9) bpftool 7.0.0-284.11.1.el9_2, kernel 5.14.0-284.11.1.el9_2, kernel-64k 5.14.0-284.11.1.el9_2, kernel-core 5.14.0-284.11.1.el9_2, kernel-tools 5.14.0-284.11.1.el9_2, python3-perf 5.14.0-284.11.1.el9_2, +28 morefixed: vendor fix RHSA-2023:2458
-
Red Hat Enterprise Linux CRB (v. 8) kernel-debuginfo-common-x86_64 4.18.0-477.10.1.el8_8, kernel-debuginfo-common-aarch64 4.18.0-477.10.1.el8_8, kernel-debuginfo-common-ppc64le 4.18.0-477.10.1.el8_8fixed: vendor fix RHSA-2023:2951
-
Red Hat Enterprise Linux CRB (v. 9) kernel-debuginfo-common-s390x 5.14.0-284.11.1.el9_2, kernel-debuginfo-common-x86_64 5.14.0-284.11.1.el9_2, kernel-debuginfo-common-aarch64 5.14.0-284.11.1.el9_2, kernel-debuginfo-common-ppc64le 5.14.0-284.11.1.el9_2fixed: vendor fix RHSA-2023:2458
-
Red Hat Enterprise Linux 10 kernelnot affected: vulnerable code not present
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
Exploit prediction
0.25% chance of exploitation in the next 30 days, higher than 16% of all scored CVEs (FIRST EPSS, 2026-11-08).
Affected products
- Linux Linux
Classification
- Technology feeds
References
- git.kernel.org /stable/c/7ee059d06a5d3c15465959e0472993e80fbe4e81
- git.kernel.org /stable/c/550a4fac7ecfee5bac6a0dd772456ca62fb72f46
- git.kernel.org /stable/c/e8b8e0d2bbf7d1172c4f435621418e29ee408d46
- git.kernel.org /stable/c/7ae6aa649394e1e7f6dafb55ce0d578c0572a280
- git.kernel.org /stable/c/34fe9c2251f19786a6689149a6212c6c0de1d63b
- git.kernel.org /stable/c/34cd15d83b7206188d440b29b68084fcafde9395
- git.kernel.org /stable/c/94e231c9d6f2648d2f1f68e7f476e050ee0a6159
- git.kernel.org /stable/c/d9971fa4d8bde63d49c743c1b32d12fbbd3a30bd
- git.kernel.org /stable/c/88430ebcbc0ec637b710b947738839848c20feff
Sources
- CVE List CVE-2022-50563
- NVD CVE-2022-50563
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.