CVE-2022-50578 json
class: fix possible memory leak in __class_register()
published 2025-10-22 12 mo ago modified 2026-06-17 4 mo ago also EUVD-2022-55650
- cvss
- —
- not scored
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.2%
- EPSS 0.2% chance of exploitation in 30 days, percentile 15%
- public exploits
- 0
- none known
Summary
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
Patch / fix
- Linux Linux 4.14.303, 4.19.270, 5.4.229, 5.10.163, 5.15.86, 6.0.16, 6.1.2, 6.2
- linux Debian 14, Debian 13, Debian 12 6.1.4-1
debian advisories DEBIAN-CVE-2022-50578
- linux Ubuntu 18.04 LTS 4.15.0-208.220
- linux Ubuntu 20.04 LTS 5.4.0-144.161
- linux Ubuntu 22.04 LTS 5.15.0-69.76
- linux-aws Ubuntu 18.04 LTS 4.15.0-1153.166
- linux-aws Ubuntu 20.04 LTS 5.4.0-1097.105
- linux-aws Ubuntu 22.04 LTS 5.15.0-1033.37
- linux-gcp Ubuntu 20.04 LTS 5.4.0-1101.110
- linux-gcp Ubuntu 22.04 LTS 5.15.0-1031.38
ubuntu advisories UBUNTU-CVE-2022-50578
Ubuntu security data © Canonical Ltd., from https://github.com/canonical/ubuntu-security-notices via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
- kernel RHEL 8 4.18.0-513.5.1.el8_9
- perf RHEL 8 4.18.0-513.5.1.el8_9
- bpftool RHEL 8 4.18.0-513.5.1.el8_9
- kernel-core RHEL 8 4.18.0-513.5.1.el8_9
- kernel-tools RHEL 8 4.18.0-513.5.1.el8_9
- python3-perf RHEL 8 4.18.0-513.5.1.el8_9
- kernel-modules RHEL 8 4.18.0-513.5.1.el8_9
- kernel-zfcpdump RHEL 8 4.18.0-513.5.1.el8_9
red hat advisories RHSA-2023:7077RHSA-2023:6583
- kernel-64kb SLES 15 SP5-LTSS, SLE High Performance Computing 15 SP5-LTSS, SLE High Performance Computing 15 SP5-ESPOS 5.14.21-150500.55.127.1
- kernel-syms SLES for SAP 15 SP5, SLES 15 SP5-LTSS, SLE High Performance Computing 15 SP5-LTSS +1 more 5.14.21-150500.55.127.1
- kernel-source SLES for SAP 15 SP5, SLES 15 SP5-LTSS, SLE Micro 5.5 +2 more 5.14.21-150500.55.127.1
- kernel-default SLES for SAP 15 SP5, SLES 15 SP5-LTSS, SLE Micro 5.5 +3 more 5.14.21-150500.55.127.1
- kernel-obs-build SLES for SAP 15 SP5, SLES 15 SP5-LTSS, SLE High Performance Computing 15 SP5-LTSS +1 more 5.14.21-150500.55.127.1
- kernel-default-base SLES for SAP 15 SP5, SLES 15 SP5-LTSS, SLE Micro 5.5 +2 more 5.14.21-150500.55.127.1.150500.6.61.1
- kernel-rt SLE Micro 5.5 5.14.21-150500.13.112.1
- kernel-source-rt SLE Micro 5.5 5.14.21-150500.13.112.1
suse advisories SUSE-SU-2026:4892-1SUSE-SU-2025:4515-1SUSE-SU-2025:4320-1SUSE-SU-2025:4149-1SUSE-SU-2025:4139-1SUSE-SU-2025:4111-1
- git.kernel.org/stable/c/4efa5443817c1b6de22d401aeca5b2481e835f8c commit
- git.kernel.org/stable/c/3bb9c92c27624ad076419a70f2b1a30cd1f8bbbd commit
- git.kernel.org/stable/c/3e0efc3f3f5e5c73996782f8db69963e501bb878 commit
- git.kernel.org/stable/c/18a7200646958cf8e1b8a933de08122fc50676cd commit
- git.kernel.org/stable/c/417ef049e3fd3b0d2593c1d5ffa3d0d5d0a018a7 commit
- git.kernel.org/stable/c/e764ad5918a099ebeb909ccff83893a714e497e1 commit
- git.kernel.org/stable/c/abaedb68a769e6bf36836b55a2f49b531c5f3f7b commit
- git.kernel.org/stable/c/8c3e8a6bdb5253b97ad532570f8b5db5f7a06407 commit
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2022-50578 updated cvss 5.5
kernel: Linux kernel: Memory leak in __class_register()
-
Red Hat Enterprise Linux 6 perf, kernel, python-perf, kernel-kdump, kernel-firmware, kernel-bootwrapper, +1 moreaffected: no fix planned “Out of support scope”
-
Red Hat Enterprise Linux 7 perf, kernel, bpftool, kernel-rt, python-perf, kernel-kdump, +8 more Red Hat Enterprise Linux 8 kernel-rt, kernel-rt-kvm, kernel-rt-core, kernel-rt-modules, kernel-rt-debug-kvm, kernel-rt-debug-core, +6 more Red Hat Enterprise Linux 9 rv, perf, rtla, kernel, bpftool, libperf, +83 moreaffected: no fix available “Fix deferred”
-
Red Hat CodeReady Linux Builder (v. 8) kernel-debuginfo-common-x86_64 4.18.0-513.5.1.el8_9, kernel-debuginfo-common-aarch64 4.18.0-513.5.1.el8_9, kernel-debuginfo-common-ppc64le 4.18.0-513.5.1.el8_9 Red Hat Enterprise Linux BaseOS (v. 8) perf 4.18.0-513.5.1.el8_9, kernel 4.18.0-513.5.1.el8_9, bpftool 4.18.0-513.5.1.el8_9, kernel-core 4.18.0-513.5.1.el8_9, kernel-tools 4.18.0-513.5.1.el8_9, python3-perf 4.18.0-513.5.1.el8_9, +15 morefixed: vendor fix RHSA-2023:7077
-
Red Hat Enterprise Linux 10 kernelnot affected: vulnerable code not present
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
Exploit prediction
0.24% chance of exploitation in the next 30 days, higher than 15% of all scored CVEs (FIRST EPSS, 2026-11-08).
Affected products
- Linux Linux
Classification
- Technology feeds
References
- git.kernel.org /stable/c/4efa5443817c1b6de22d401aeca5b2481e835f8c
- git.kernel.org /stable/c/3bb9c92c27624ad076419a70f2b1a30cd1f8bbbd
- git.kernel.org /stable/c/3e0efc3f3f5e5c73996782f8db69963e501bb878
- git.kernel.org /stable/c/18a7200646958cf8e1b8a933de08122fc50676cd
- git.kernel.org /stable/c/417ef049e3fd3b0d2593c1d5ffa3d0d5d0a018a7
- git.kernel.org /stable/c/e764ad5918a099ebeb909ccff83893a714e497e1
- git.kernel.org /stable/c/abaedb68a769e6bf36836b55a2f49b531c5f3f7b
- git.kernel.org /stable/c/8c3e8a6bdb5253b97ad532570f8b5db5f7a06407
Sources
- CVE List CVE-2022-50578
- NVD CVE-2022-50578
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.