CVE-2022-50534: dm thin: Use last transaction's pmd->root when commit failed

Published Oct 7, 2025
·
Updated

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

dm thin: Use last transaction's pmd->root when commit failed

Recently we found a softlock up problem in dm thin pool btree lookup code due to corrupted metadata:

Kernel panic - not syncing: softlockup: hung tasks CPU: 7 PID: 2669225 Comm: kworker/u16:3 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996) Workqueue: dm-thin doworker [dmthinpool] Call Trace: <IRQ> dumpstack+0x9c/0xd3 panic+0x35d/0x6b9 watchdogtimerfn.cold+0x16/0x25 runhrtimer+0xa2/0x2d0 </IRQ> RIP: 0010:relinklru+0x102/0x220 [dmbufio] bufionew+0x11f/0x4f0 [dmbufio] newread+0xa3/0x1e0 [dmbufio] dmbmreadlock+0x33/0xd0 [dmpersistentdata] rostep+0x63/0x100 [dmpersistentdata] btreelookupraw.constprop.0+0x44/0x220 [dmpersistentdata] dmbtreelookup+0x16f/0x210 [dmpersistentdata] dmthinfindblock+0x12c/0x210 [dmthinpool] processbioreadonly+0xc5/0x400 [dmthinpool] processthindeferredbios+0x1a4/0x4a0 [dmthinpool] processonework+0x3c5/0x730

Following process may generate a broken btree mixed with fresh and stale btree nodes, which could get dm thin trapped in an infinite loop while looking up data block: Transaction 1: pmd->root = A, A->B->C // One path in btree pmd->root = X, X->Y->Z // Copy-up Transaction 2: X,Z is updated on disk, Y write failed. // Commit failed, dm thin becomes read-only. processbioreadonly dmthinfindblock findblock dmbtreelookup(pmd->root) The pmd->root points to a broken btree, Y may contain stale node pointing to any block, for example X, which gets dm thin trapped into a dead loop while looking up Z.

Fix this by setting pmd->root in openmetadata(), so that dm thin will use the last transaction's pmd->root if commit failed.

Fetch a reproducer in [Link].

Linke: https://bugzilla.kernel.org/showbug.cgi?id=216790

Affected Software

9 affected components
Linux Linux kernel
Linux Linux kernel>=3.2<4.9.337
Linux Linux kernel>=4.10<4.14.303
Linux Linux kernel>=4.15<4.19.270
Linux Linux kernel>=4.20<5.4.229
Linux Linux kernel>=5.5<5.10.163
Linux Linux kernel>=5.11<5.15.87
Linux Linux kernel>=5.16<6.0.18
Linux Linux kernel>=6.1<6.1.4

Event History

Oct 7, 2025
CVE Published
via MITRE·03:19 PM
Data Sourced
via MITRE·03:19 PM
Description
Data Sourced
via NVD·04:15 PM
RemedyDescriptionSeverityAffected Software

Frequently Asked Questions

1

What is the severity of CVE-2022-50534?

CVE-2022-50534 is rated as a moderate severity vulnerability due to potential softlock issues in the Linux kernel.

2

How do I fix CVE-2022-50534?

To mitigate CVE-2022-50534, it is recommended to update the Linux kernel to a version that includes the patch for this vulnerability.

3

Which versions of the Linux kernel are affected by CVE-2022-50534?

CVE-2022-50534 affects multiple versions of the Linux kernel ranging from 3.2 to 6.1.4, with specific vulnerable versions in between.

4

What type of vulnerability is CVE-2022-50534?

CVE-2022-50534 is a vulnerabilities in the device-mapper component of the Linux kernel related to transaction handling.

5

What impact does CVE-2022-50534 have on system stability?

CVE-2022-50534 can lead to soft lockups, causing instability and rendering the system unresponsive during certain operations.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203