Description
In the Linux kernel, the following vulnerability has been resolved: vc_screen: fix null-ptr-deref in vcs_notifier() during concurrent vcs_write A KASAN null-ptr-deref was observed in vcs_notifier(): BUG: KASAN: null-ptr-deref in vcs_notifier+0x98/0x130 Read of size 2 at addr qmp_cmd_name: qmp_capabilities, arguments: {} The issue is a race condition in vcs_write(). When the console_lock is temporarily dropped (to copy data from userspace), the vc_data pointer obtained from vcs_vc() may become stale. After re-acquiring the lock, vcs_vc() is called again to re-validate the pointer. If the vc has been deallocated in the meantime, vcs_vc() returns NULL, and the while loop breaks (with written > 0). However, after the loop, vcs_scr_updated(vc) is still called with the now-NULL vc pointer, leading to a null pointer dereference in the notifier chain (vcs_notifier dereferences param->vc). Fix this by adding a NULL check for vc before calling vcs_scr_updated().
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
11dddfbb7a4e62489b01074d6c04d9d1b42e4047 to < 43a6281790273c1b0a9ab76609ff0245b968f1e6affectede3d1adcad5b73c7ed0c7edb35ab68abcaa45cf67 to < b6bbb85cf45bf0b070e741997fe0af3a772c5ad5affected3338d0b9acde770ee588eead5cac32c25e7048fc to < ff4806202749a51938236214adc0281481a57366affected8fb9ea65c9d1338b0d2bb0a9122dc942cdd32357 to < 8232fca738011ca2ec865b46ec721d1796dc0580affected8fb9ea65c9d1338b0d2bb0a9122dc942cdd32357 to < 73049768ad57145acd337102c5aa3c788e6642c8affected8fb9ea65c9d1338b0d2bb0a9122dc942cdd32357 to < 7cc3dd79777f6ae4625ec37e84dd18a26dc88bdeaffected8fb9ea65c9d1338b0d2bb0a9122dc942cdd32357 to < 74be188eb2dc1c99d63986167b9a67d415fe7326affected8fb9ea65c9d1338b0d2bb0a9122dc942cdd32357 to < 09a43e81279b8da15526da09877134b8bcf618b0affected8fb9ea65c9d1338b0d2bb0a9122dc942cdd32357 to < a287620312dc6dcb9a093417a0e589bf30fcf38aaffected934de9a9b659785fed3e820bc0c813a460c71feaaffected0deff678157333d775af190f84696336cdcccd6daffecteda4e3c4c65ae8510e01352c9a4347e05c035b2ce2affected1de42e7653d6714a7507ba6696151a1fa028c69faffected5.10.181 to < 5.10.260affected5.15.113 to < 5.15.211affected6.1.30 to < 6.1.177affected4.14.327 to < 4.15affected4.19.284 to < 4.20affected5.4.244 to < 5.5affected6.3.4 to < 6.4affected
Linux Linux
Default version status: affected
6.4affected0 to < 6.4unaffected5.10.260 to ≤ 5.10.*unaffected5.15.211 to ≤ 5.15.*unaffected6.1.177 to ≤ 6.1.*unaffected6.6.144 to ≤ 6.6.*unaffected6.12.95 to ≤ 6.12.*unaffected6.18.37 to ≤ 6.18.*unaffected7.0.14 to ≤ 7.0.*unaffected7.1.2 to ≤ 7.1.*unaffected7.2 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/43a6281790273c1b0a9ab76609ff0245b968f1e6 ↗
- https://git.kernel.org/stable/c/b6bbb85cf45bf0b070e741997fe0af3a772c5ad5 ↗
- https://git.kernel.org/stable/c/ff4806202749a51938236214adc0281481a57366 ↗
- https://git.kernel.org/stable/c/8232fca738011ca2ec865b46ec721d1796dc0580 ↗
- https://git.kernel.org/stable/c/73049768ad57145acd337102c5aa3c788e6642c8 ↗
- https://git.kernel.org/stable/c/7cc3dd79777f6ae4625ec37e84dd18a26dc88bde ↗
- https://git.kernel.org/stable/c/74be188eb2dc1c99d63986167b9a67d415fe7326 ↗
- https://git.kernel.org/stable/c/09a43e81279b8da15526da09877134b8bcf618b0 ↗
- https://git.kernel.org/stable/c/a287620312dc6dcb9a093417a0e589bf30fcf38a ↗