CVE-2022-50578
Description
In the Linux kernel, the following vulnerability has been resolved: class: fix possible memory leak in __class_register() If class_add_groups() returns error, the 'cp->subsys' need be unregister, and the 'cp' need be freed. We can not call kset_unregister() here, because the 'cls' will be freed in callback function class_release() and it's also freed in caller's error path, it will cause double free. So fix this by calling kobject_del() and kfree_const(name) to cleanup kobject. Besides, call kfree() to free the 'cp'. Fault injection test can trigger this: unreferenced object 0xffff888102fa8190 (size 8): comm "modprobe", pid 502, jiffies 4294906074 (age 49.296s) hex dump (first 8 bytes): 70 6b 74 63 64 76 64 00 pktcdvd. backtrace: [<00000000e7c7703d>] __kmalloc_track_caller+0x1ae/0x320 [<000000005e4d70bc>] kstrdup+0x3a/0x70 [<00000000c2e5e85a>] kstrdup_const+0x68/0x80 [<000000000049a8c7>] kvasprintf_const+0x10b/0x190 [<0000000029123163>] kobject_set_name_vargs+0x56/0x150 [<00000000747219c9>] kobject_set_name+0xab/0xe0 [<0000000005f1ea4e>] __class_register+0x15c/0x49a unreferenced object 0xffff888037274000 (size 1024): comm "modprobe", pid 502, jiffies 4294906074 (age 49.296s) hex dump (first 32 bytes): 00 40 27 37 80 88 ff ff 00 40 27 37 80 88 ff ff .@'7.....@'7.... 00 00 00 00 ad 4e ad de ff ff ff ff 00 00 00 00 .....N.......... backtrace: [<00000000151f9600>] kmem_cache_alloc_trace+0x17c/0x2f0 [<00000000ecf3dd95>] __class_register+0x86/0x49a
How to fix
- Linux Linux4efa5443817c1b6de22d401aeca5b2481e835f8c, 3bb9c92c27624ad076419a70f2b1a30cd1f8bbbd, 3e0efc3f3f5e5c73996782f8db69963e501bb878, 18a7200646958cf8e1b8a933de08122fc50676cd, 417ef049e3fd3b0d2593c1d5ffa3d0d5d0a018a7, e764ad5918a099ebeb909ccff83893a714e497e1, abaedb68a769e6bf36836b55a2f49b531c5f3f7b, 8c3e8a6bdb5253b97ad532570f8b5db5f7a06407 or later
Affected products
| Product | Affected versions | Fixed in |
|---|---|---|
| Linux Linux | ced6473e7486702f530a49f886b73195e4977734 ≤ v < 4efa5443817c1b6de22d401aeca5b2481e835f8c, ced6473e7486702f530a49f886b73195e4977734 ≤ v < 3bb9c92c27624ad076419a70f2b1a30cd1f8bbbd, ced6473e7486702f530a49f886b73195e4977734 ≤ v < 3e0efc3f3f5e5c73996782f8db69963e501bb878, ced6473e7486702f530a49f886b73195e4977734 ≤ v < 18a7200646958cf8e1b8a933de08122fc50676cd, ced6473e7486702f530a49f886b73195e4977734 ≤ v < 417ef049e3fd3b0d2593c1d5ffa3d0d5d0a018a7, ced6473e7486702f530a49f886b73195e4977734 ≤ v < e764ad5918a099ebeb909ccff83893a714e497e1, ced6473e7486702f530a49f886b73195e4977734 ≤ v < abaedb68a769e6bf36836b55a2f49b531c5f3f7b, ced6473e7486702f530a49f886b73195e4977734 ≤ v < 8c3e8a6bdb5253b97ad532570f8b5db5f7a06407, 4.10 | 4efa5443817c1b6de22d401aeca5b2481e835f8c, 3bb9c92c27624ad076419a70f2b1a30cd1f8bbbd, 3e0efc3f3f5e5c73996782f8db69963e501bb878, 18a7200646958cf8e1b8a933de08122fc50676cd, 417ef049e3fd3b0d2593c1d5ffa3d0d5d0a018a7, e764ad5918a099ebeb909ccff83893a714e497e1, abaedb68a769e6bf36836b55a2f49b531c5f3f7b, 8c3e8a6bdb5253b97ad532570f8b5db5f7a06407 |
Check your version
Choose the product and enter the version you run to see whether it falls in the affected range.
Attack Surface Management
See the assets tied to your domains, the technologies they run and known vulnerabilities in one list.