CVE-2023-53611

Summary

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

ipmi_si: fix a memleak in try_smi_init()

Kmemleak reported the following leak info in try_smi_init():

unreferenced object 0xffff00018ecf9400 (size 1024): comm "modprobe", pid 2707763, jiffies 4300851415 (age 773.308s) backtrace: [<000000004ca5b312>] __kmalloc+0x4b8/0x7b0 [<00000000953b1072>] try_smi_init+0x148/0x5dc [ipmi_si] [<000000006460d325>] 0xffff800081b10148 [<0000000039206ea5>] do_one_initcall+0x64/0x2a4 [<00000000601399ce>] do_init_module+0x50/0x300 [<000000003c12ba3c>] load_module+0x7a8/0x9e0 [<00000000c246fffe>] __se_sys_init_module+0x104/0x180 [<00000000eea99093>] __arm64_sys_init_module+0x24/0x30 [<0000000021b1ef87>] el0_svc_common.constprop.0+0x94/0x250 [<0000000070f4f8b7>] do_el0_svc+0x48/0xe0 [<000000005a05337f>] el0_svc+0x24/0x3c [<000000005eb248d6>] el0_sync_handler+0x160/0x164 [<0000000030a59039>] el0_sync+0x160/0x180

The problem was that when an error occurred before handlers registration and after allocating new_smi-&gt;si_sm, the variable wouldn't be freed in the error handling afterwards since shutdown_smi() hadn't been registered yet. Fix it by adding a kfree() in the error handling path in try_smi_init().

Affected Software

VendorProductVersion RangeStatus
LinuxLinux7960f18a56475bf2177c5ff56c72eb4c12c56440 < b9bc8fbb2d416ce87f0342478dc9fcfd79f2c65faffected
LinuxLinux7960f18a56475bf2177c5ff56c72eb4c12c56440 < f53ab5a2bf20fed59a2f7542d3453228b8056358affected
LinuxLinux7960f18a56475bf2177c5ff56c72eb4c12c56440 < 5c5f02e16b919c8cb6024dc3778c8d8f1fb1f26baffected
LinuxLinux7960f18a56475bf2177c5ff56c72eb4c12c56440 < cbb7d8a4b4beb3061b3a1847a742983a01dca381affected
LinuxLinux7960f18a56475bf2177c5ff56c72eb4c12c56440 < 09cb2a71b2e982015fe0464f28da1ab42b8e6375affected
LinuxLinux7960f18a56475bf2177c5ff56c72eb4c12c56440 < 1bfcfea0fae0d0a6c6ff5543e6d704b3807b83ceaffected
LinuxLinux7960f18a56475bf2177c5ff56c72eb4c12c56440 < 7291af9a738d936c2d6869d030711dceb68404d0affected
LinuxLinux7960f18a56475bf2177c5ff56c72eb4c12c56440 < 6cf1a126de2992b4efe1c3c4d398f8de4aed6e3faffected
LinuxLinux4.18affected
LinuxLinux0 < 4.18unaffected
LinuxLinux4.19.295 <= 4.19.*unaffected
LinuxLinux5.4.257 <= 5.4.*unaffected
LinuxLinux5.10.195 <= 5.10.*unaffected
LinuxLinux5.15.132 <= 5.15.*unaffected
LinuxLinux6.1.53 <= 6.1.*unaffected
LinuxLinux6.4.16 <= 6.4.*unaffected
LinuxLinux6.5.3 <= 6.5.*unaffected
LinuxLinux6.6 <= *unaffected

Weaknesses

References