CVE-2022-50185

Summary

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

drm/radeon: fix potential buffer overflow in ni_set_mc_special_registers()

The last case label can write two buffers 'mc_reg_address[j]' and 'mc_data[j]' with 'j' offset equal to SMC_NISLANDS_MC_REGISTER_ARRAY_SIZE since there are no checks for this value in both case labels after the last 'j++'.

Instead of changing '>' to '>=' there, add the bounds check at the start of the second 'case' (the first one already has it).

Also, remove redundant last checks for 'j' index bigger than array size. The expression is always false. Moreover, before or after the patch 'table->last' can be equal to SMC_NISLANDS_MC_REGISTER_ARRAY_SIZE and it seems it can be a valid value.

Detected using the static analysis tool - Svace.

Affected Software

VendorProductVersion RangeStatus
LinuxLinux69e0b57a91adca2e3eb56ed4db39ab90f3ae1043 < ea73869df6ef386fc0feeb28ff66742ca835b18faffected
LinuxLinux69e0b57a91adca2e3eb56ed4db39ab90f3ae1043 < 1f341053852be76f82610ce47a505d930512f05caffected
LinuxLinux69e0b57a91adca2e3eb56ed4db39ab90f3ae1043 < db1a9add3f90ff1c641974d5bb910c16b87af4efaffected
LinuxLinux69e0b57a91adca2e3eb56ed4db39ab90f3ae1043 < 8508d6d23a247c29792ce2fc0df3f3404d6a6a80affected
LinuxLinux69e0b57a91adca2e3eb56ed4db39ab90f3ae1043 < deb603c5928e546609c0d5798e231d0205748943affected
LinuxLinux69e0b57a91adca2e3eb56ed4db39ab90f3ae1043 < 782e413e38dffd37cc85b08b1ccb982adb4a93ceaffected
LinuxLinux69e0b57a91adca2e3eb56ed4db39ab90f3ae1043 < 9faff03617afeced1c4e5daa89e79b3906374342affected
LinuxLinux69e0b57a91adca2e3eb56ed4db39ab90f3ae1043 < 136f614931a2bb73616b292cf542da3a18daefd5affected
LinuxLinux3.11affected
LinuxLinux0 < 3.11unaffected
LinuxLinux4.14.291 <= 4.14.*unaffected
LinuxLinux4.19.256 <= 4.19.*unaffected
LinuxLinux5.4.211 <= 5.4.*unaffected
LinuxLinux5.10.137 <= 5.10.*unaffected
LinuxLinux5.15.61 <= 5.15.*unaffected
LinuxLinux5.18.18 <= 5.18.*unaffected
LinuxLinux5.19.2 <= 5.19.*unaffected
LinuxLinux6.0 <= *unaffected

Weaknesses

References