CVE-2022-49747

Summary

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

erofs/zmap.c: Fix incorrect offset calculation

Effective offset to add to length was being incorrectly calculated, which resulted in iomap->length being set to 0, triggering a WARN_ON in iomap_iter_done().

Fix that, and describe it in comments.

This was reported as a crash by syzbot under an issue about a warning encountered in iomap_iter_done(), but unrelated to erofs.

C reproducer: https://syzkaller.appspot.com/text?tag=ReproC&x=1037a6b2880000 Kernel config: https://syzkaller.appspot.com/text?tag=KernelConfig&x=e2021a61197ebe02 Dashboard link: https://syzkaller.appspot.com/bug?extid=a8e049cd3abd342936b6

Affected Software

VendorProductVersion RangeStatus
LinuxLinuxeadcd6b5a1eb39866ab8d8a3e4f2e51bc51a2350 < 2144859229c1e74f52d3ea067338d314a83a8afbaffected
LinuxLinuxeadcd6b5a1eb39866ab8d8a3e4f2e51bc51a2350 < 9f31d8c889d9a4e47bfcc6c4537d0c9f89fe582caffected
LinuxLinuxeadcd6b5a1eb39866ab8d8a3e4f2e51bc51a2350 < 6acd87d50998ef0afafc441613aeaf5a8f5c9effaffected
LinuxLinux5.15affected
LinuxLinux0 < 5.15unaffected
LinuxLinux5.15.92 <= 5.15.*unaffected
LinuxLinux6.1.10 <= 6.1.*unaffected
LinuxLinux6.2 <= *unaffected

Weaknesses

References