CVE-2023-53484

Summary

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

lib: cpu_rmap: Avoid use after free on rmap->obj array entries

When calling irq_set_affinity_notifier() with NULL at the notify argument, it will cause freeing of the glue pointer in the corresponding array entry but will leave the pointer in the array. A subsequent call to free_irq_cpu_rmap() will try to free this entry again leading to possible use after free.

Fix that by setting NULL to the array entry and checking that we have non-zero at the array entry when iterating over the array in free_irq_cpu_rmap().

The current code does not suffer from this since there are no cases where irq_set_affinity_notifier(irq, NULL) (note the NULL passed for the notify arg) is called, followed by a call to free_irq_cpu_rmap() so we don't hit and issue. Subsequent patches in this series excersize this flow, hence the required fix.

Affected Software

VendorProductVersion RangeStatus
LinuxLinux896f97ea95c1d29c0520ee0766b66b7f64cb967c < 981f339d2905b6a92ef59358158b326493aecac5affected
LinuxLinux896f97ea95c1d29c0520ee0766b66b7f64cb967c < d1308bd0b24cb1d78fa2747d5fa3e055cc628a48affected
LinuxLinux896f97ea95c1d29c0520ee0766b66b7f64cb967c < cc2d2b3dbfb0ba57bc027fb7e1121250c50e4000affected
LinuxLinux896f97ea95c1d29c0520ee0766b66b7f64cb967c < f748e15253833b771acbede14ea98f50831ac289affected
LinuxLinux896f97ea95c1d29c0520ee0766b66b7f64cb967c < c6ed54dd90698dc0744d669524cc1c122ded8a16affected
LinuxLinux896f97ea95c1d29c0520ee0766b66b7f64cb967c < c9115f49cf260d24d8b5f2d9a4b63cb31a627bb4affected
LinuxLinux896f97ea95c1d29c0520ee0766b66b7f64cb967c < 67bca5f1d644f4e79b694abd8052a177de81c37faffected
LinuxLinux896f97ea95c1d29c0520ee0766b66b7f64cb967c < 4e0473f1060aa49621d40a113afde24818101d37affected
LinuxLinux3.8affected
LinuxLinux0 < 3.8unaffected
LinuxLinux4.14.316 <= 4.14.*unaffected
LinuxLinux4.19.284 <= 4.19.*unaffected
LinuxLinux5.4.244 <= 5.4.*unaffected
LinuxLinux5.10.181 <= 5.10.*unaffected
LinuxLinux5.15.113 <= 5.15.*unaffected
LinuxLinux6.1.30 <= 6.1.*unaffected
LinuxLinux6.3.4 <= 6.3.*unaffected
LinuxLinux6.4 <= *unaffected

Weaknesses

References