CWE
667
Advisory Published
Updated

CVE-2024-47736: erofs: handle overlapped pclusters out of crafted images properly

First published: Mon Oct 21 2024(Updated: )

In the Linux kernel, the following vulnerability has been resolved: erofs: handle overlapped pclusters out of crafted images properly syzbot reported a task hang issue due to a deadlock case where it is waiting for the folio lock of a cached folio that will be used for cache I/Os. After looking into the crafted fuzzed image, I found it's formed with several overlapped big pclusters as below: Ext: logical offset | length : physical offset | length 0: 0.. 16384 | 16384 : 151552.. 167936 | 16384 1: 16384.. 32768 | 16384 : 155648.. 172032 | 16384 2: 32768.. 49152 | 16384 : 537223168.. 537239552 | 16384 ... Here, extent 0/1 are physically overlapped although it's entirely _impossible_ for normal filesystem images generated by mkfs. First, managed folios containing compressed data will be marked as up-to-date and then unlocked immediately (unlike in-place folios) when compressed I/Os are complete. If physical blocks are not submitted in the incremental order, there should be separate BIOs to avoid dependency issues. However, the current code mis-arranges z_erofs_fill_bio_vec() and BIO submission which causes unexpected BIO waits. Second, managed folios will be connected to their own pclusters for efficient inter-queries. However, this is somewhat hard to implement easily if overlapped big pclusters exist. Again, these only appear in fuzzed images so let's simply fall back to temporary short-lived pages for correctness. Additionally, it justifies that referenced managed folios cannot be truncated for now and reverts part of commit 2080ca1ed3e4 ("erofs: tidy up `struct z_erofs_bvec`") for simplicity although it shouldn't be any difference.

Credit: 416baaa9-dc9f-4396-8d5f-8c081fb06d67

Affected SoftwareAffected VersionHow to fix
Linux Kernel>=5.13<6.10.13
Linux Kernel>=6.11<6.11.2
debian/linux<=6.1.123-1<=6.1.128-1
5.10.223-1
5.10.226-1
6.12.12-1
6.12.15-1

Never miss a vulnerability like this again

Sign up to SecAlerts for real-time vulnerability data matched to your software, aggregated from hundreds of sources.

Frequently Asked Questions

  • What is the severity of CVE-2024-47736?

    CVE-2024-47736 is classified as a moderate severity vulnerability affecting the Linux kernel.

  • How do I fix CVE-2024-47736?

    To fix CVE-2024-47736, update your Linux kernel to the latest available version above 6.11.2 or above 6.10.13.

  • What systems are affected by CVE-2024-47736?

    CVE-2024-47736 affects Linux kernel versions from 5.13 up to 6.10.13 and between 6.11.0 and 6.11.2.

  • What type of issue does CVE-2024-47736 cause?

    CVE-2024-47736 can lead to a task hang due to a deadlock condition in the Linux kernel.

  • Is CVE-2024-47736 related to file system vulnerabilities?

    Yes, CVE-2024-47736 is related to handling overlaps in pclusters when processing crafted image files in the Linux kernel.

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.
© 2025 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203