CVE-2022-50578

Source
https://cve.org/CVERecord?id=CVE-2022-50578
Import Source
https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2022-50578.json
JSON Data
https://api.test.osv.dev/v1/vulns/CVE-2022-50578
Downstream
Related
Published
2025-10-22T13:23:31.565Z
Modified
2026-03-12T03:26:39.271523Z
Summary
class: fix possible memory leak in __class_register()
Details

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

class: fix possible memory leak in _classregister()

If classaddgroups() returns error, the 'cp->subsys' need be unregister, and the 'cp' need be freed.

We can not call ksetunregister() here, because the 'cls' will be freed in callback function classrelease() and it's also freed in caller's error path, it will cause double free.

So fix this by calling kobjectdel() and kfreeconst(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>] __kmalloctrackcaller+0x1ae/0x320 [<000000005e4d70bc>] kstrdup+0x3a/0x70 [<00000000c2e5e85a>] kstrdup_const+0x68/0x80 [<000000000049a8c7>] kvasprintfconst+0x10b/0x190 [<0000000029123163>] kobjectsetnamevargs+0x56/0x150 [<00000000747219c9>] kobjectsetname+0xab/0xe0 [<0000000005f1ea4e>] _classregister+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>] kmemcachealloc_trace+0x17c/0x2f0 [<00000000ecf3dd95>] _classregister+0x86/0x49a

Database specific
{
    "cna_assigner": "Linux",
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2022/50xxx/CVE-2022-50578.json"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
ced6473e7486702f530a49f886b73195e4977734
Fixed
4efa5443817c1b6de22d401aeca5b2481e835f8c
Fixed
3bb9c92c27624ad076419a70f2b1a30cd1f8bbbd
Fixed
3e0efc3f3f5e5c73996782f8db69963e501bb878
Fixed
18a7200646958cf8e1b8a933de08122fc50676cd
Fixed
417ef049e3fd3b0d2593c1d5ffa3d0d5d0a018a7
Fixed
e764ad5918a099ebeb909ccff83893a714e497e1
Fixed
abaedb68a769e6bf36836b55a2f49b531c5f3f7b
Fixed
8c3e8a6bdb5253b97ad532570f8b5db5f7a06407

Database specific

source
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2022-50578.json"

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
4.10.0
Fixed
4.14.303
Type
ECOSYSTEM
Events
Introduced
4.15.0
Fixed
4.19.270
Type
ECOSYSTEM
Events
Introduced
4.20.0
Fixed
5.4.229
Type
ECOSYSTEM
Events
Introduced
5.5.0
Fixed
5.10.163
Type
ECOSYSTEM
Events
Introduced
5.11.0
Fixed
5.15.86
Type
ECOSYSTEM
Events
Introduced
5.16.0
Fixed
6.0.16
Type
ECOSYSTEM
Events
Introduced
6.1.0
Fixed
6.1.2

Database specific

source
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2022-50578.json"