CVE-2022-49849

Summary

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

btrfs: fix match incorrectly in dev_args_match_device

syzkaller found a failed assertion:

assertion failed: (args->devid != (u64)-1) || args->missing, in fs/btrfs/volumes.c:6921

This can be triggered when we set devid to (u64)-1 by ioctl. In this case, the match of devid will be skipped and the match of device may succeed incorrectly.

Patch 562d7b1512f7 introduced this function which is used to match device. This function contains two matching scenarios, we can distinguish them by checking the value of args->missing rather than check whether args->devid and args->uuid is default value.

Affected Software

VendorProductVersion RangeStatus
LinuxLinux5578b681fbf2b22d61189a2539efd3009518b328 < c9fe4719c662e0af17eea723cf345e37719fd3c9affected
LinuxLinux562d7b1512f7369a19bca2883e2e8672d78f0481 < bc6c127c377010f136360552ebf91c2723081c1baffected
LinuxLinux562d7b1512f7369a19bca2883e2e8672d78f0481 < 0fca385d6ebc3cabb20f67bcf8a71f1448bdc001affected
LinuxLinux5.15.54 < 5.15.79affected
LinuxLinux5.16affected
LinuxLinux0 < 5.16unaffected
LinuxLinux5.15.79 <= 5.15.*unaffected
LinuxLinux6.0.9 <= 6.0.*unaffected
LinuxLinux6.1 <= *unaffected

Weaknesses

References