CVE-2022-49259

Summary

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

block: don't delete queue kobject before its children

kobjects aren't supposed to be deleted before their child kobjects are deleted. Apparently this is usually benign; however, a WARN will be triggered if one of the child kobjects has a named attribute group:

sysfs group 'modes' not found for kobject 'crypto'
WARNING: CPU: 0 PID: 1 at fs/sysfs/group.c:278 sysfs_remove_group+0x72/0x80
...
Call Trace:
  sysfs_remove_groups+0x29/0x40 fs/sysfs/group.c:312
  __kobject_del+0x20/0x80 lib/kobject.c:611
  kobject_cleanup+0xa4/0x140 lib/kobject.c:696
  kobject_release lib/kobject.c:736 [inline]
  kref_put include/linux/kref.h:65 [inline]
  kobject_put+0x53/0x70 lib/kobject.c:753
  blk_crypto_sysfs_unregister+0x10/0x20 block/blk-crypto-sysfs.c:159
  blk_unregister_queue+0xb0/0x110 block/blk-sysfs.c:962
  del_gendisk+0x117/0x250 block/genhd.c:610

Fix this by moving the kobject_del() and the corresponding kobject_uevent() to the correct place.

Affected Software

VendorProductVersion RangeStatus
LinuxLinux2c2086afc2b8b974fac32cb028e73dc27bfae442 < b2001eb10f59363da930cdd6e086a2861986fa18affected
LinuxLinux2c2086afc2b8b974fac32cb028e73dc27bfae442 < 84fe3ca6e7910beb47ec13509d484f84fa2a41adaffected
LinuxLinux2c2086afc2b8b974fac32cb028e73dc27bfae442 < 0b5924a14d64487ebd51127b0358d06066ef5384affected
LinuxLinux2c2086afc2b8b974fac32cb028e73dc27bfae442 < efaa0e969261e97c1fdd8e0338e5dd3ba5b9219caffected
LinuxLinux2c2086afc2b8b974fac32cb028e73dc27bfae442 < cf0cb8686e55d9c022944bc6ba9e19e832889e83affected
LinuxLinux2c2086afc2b8b974fac32cb028e73dc27bfae442 < 3d7e32c8da45957326f56937e0471c686d1a7711affected
LinuxLinux2c2086afc2b8b974fac32cb028e73dc27bfae442 < 0f69288253e9fc7c495047720e523b9f1aba5712affected
LinuxLinux4.16affected
LinuxLinux0 < 4.16unaffected
LinuxLinux4.19.238 <= 4.19.*unaffected
LinuxLinux5.4.189 <= 5.4.*unaffected
LinuxLinux5.10.110 <= 5.10.*unaffected
LinuxLinux5.15.33 <= 5.15.*unaffected
LinuxLinux5.16.19 <= 5.16.*unaffected
LinuxLinux5.17.2 <= 5.17.*unaffected
LinuxLinux5.18 <= *unaffected

Weaknesses

References