In the Linux kernel, the following vulnerability has been resolved:
fbdev: Fix invalid page access after closing deferred I/O devices
When a fbdev with deferred I/O is once opened and closed, the dirty pages still remain queued in the pageref list, and eventually later those may be processed in the delayed work. This may lead to a corruption of pages, hitting an Oops.
This patch makes sure to cancel the delayed work and clean up the pageref list at closing the device for addressing the bug. A part of the cleanup code is factored out as a new helper function that is called from the common fb_release().
{ "vanir_signatures": [ { "signature_version": "v1", "digest": { "threshold": 0.9, "line_hashes": [ "220971575929664324054009690615243493305", "9185951686281011176290410687136696656", "264287493988932985642503385094733320569", "139725680143808672036043953027139836404" ] }, "id": "CVE-2023-52731-07581e87", "deprecated": false, "target": { "file": "drivers/video/fbdev/core/fbmem.c" }, "signature_type": "Line", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@87b9802ca824fcee7915e717e9a60471af62e8e9" }, { "signature_version": "v1", "digest": { "threshold": 0.9, "line_hashes": [ "220971575929664324054009690615243493305", "9185951686281011176290410687136696656", "264287493988932985642503385094733320569", "139725680143808672036043953027139836404" ] }, "id": "CVE-2023-52731-0d6669a3", "deprecated": false, "target": { "file": "drivers/video/fbdev/core/fbmem.c" }, "signature_type": "Line", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3efc61d95259956db25347e2a9562c3e54546e20" }, { "signature_version": "v1", "digest": { "threshold": 0.9, "line_hashes": [ "208314558709312157804576410687663366253", "65731643813632477129050788631568493125", "317321520056188458598649025466962957916", "324299675841097761849055470457763504039" ] }, "id": "CVE-2023-52731-54a24210", "deprecated": false, "target": { "file": "include/linux/fb.h" }, "signature_type": "Line", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@87b9802ca824fcee7915e717e9a60471af62e8e9" }, { "signature_version": "v1", "digest": { "length": 342.0, "function_hash": "27856199660949061341878625827920241241" }, "id": "CVE-2023-52731-641f43fa", "deprecated": false, "target": { "file": "drivers/video/fbdev/core/fb_defio.c", "function": "fb_deferred_io_cleanup" }, "signature_type": "Function", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@f1d91f0e9d5a240a809698d7d9c5a538e7dcc149" }, { "signature_version": "v1", "digest": { "length": 342.0, "function_hash": "27856199660949061341878625827920241241" }, "id": "CVE-2023-52731-7325ca48", "deprecated": false, "target": { "file": "drivers/video/fbdev/core/fb_defio.c", "function": "fb_deferred_io_cleanup" }, "signature_type": "Function", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@87b9802ca824fcee7915e717e9a60471af62e8e9" }, { "signature_version": "v1", "digest": { "threshold": 0.9, "line_hashes": [ "208314558709312157804576410687663366253", "65731643813632477129050788631568493125", "317321520056188458598649025466962957916", "324299675841097761849055470457763504039" ] }, "id": "CVE-2023-52731-80a22706", "deprecated": false, "target": { "file": "include/linux/fb.h" }, "signature_type": "Line", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@f1d91f0e9d5a240a809698d7d9c5a538e7dcc149" }, { "signature_version": "v1", "digest": { "threshold": 0.9, "line_hashes": [ "193683203519382274571350174604638068986", "141683507981823005834249158989270412186", "254576598503723529119119703479687762881", "39589692959009294473752984823694310840", "172511225514792921681443205535939681568", "291958150988430345239879525922011389613", "118536200104104402653056766297592848686", "305121920666290730864292360559117239769" ] }, "id": "CVE-2023-52731-8146f7fe", "deprecated": false, "target": { "file": "drivers/video/fbdev/core/fb_defio.c" }, "signature_type": "Line", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3efc61d95259956db25347e2a9562c3e54546e20" }, { "signature_version": "v1", "digest": { "threshold": 0.9, "line_hashes": [ "208314558709312157804576410687663366253", "65731643813632477129050788631568493125", "317321520056188458598649025466962957916", "324299675841097761849055470457763504039" ] }, "id": "CVE-2023-52731-895d8e0e", "deprecated": false, "target": { "file": "include/linux/fb.h" }, "signature_type": "Line", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3efc61d95259956db25347e2a9562c3e54546e20" }, { "signature_version": "v1", "digest": { "threshold": 0.9, "line_hashes": [ "193683203519382274571350174604638068986", "141683507981823005834249158989270412186", "254576598503723529119119703479687762881", "39589692959009294473752984823694310840", "172511225514792921681443205535939681568", "291958150988430345239879525922011389613", "118536200104104402653056766297592848686", "305121920666290730864292360559117239769" ] }, "id": "CVE-2023-52731-93fff174", "deprecated": false, "target": { "file": "drivers/video/fbdev/core/fb_defio.c" }, "signature_type": "Line", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@f1d91f0e9d5a240a809698d7d9c5a538e7dcc149" }, { "signature_version": "v1", "digest": { "threshold": 0.9, "line_hashes": [ "193683203519382274571350174604638068986", "141683507981823005834249158989270412186", "254576598503723529119119703479687762881", "39589692959009294473752984823694310840", "172511225514792921681443205535939681568", "291958150988430345239879525922011389613", "118536200104104402653056766297592848686", "305121920666290730864292360559117239769" ] }, "id": "CVE-2023-52731-a18f4c30", "deprecated": false, "target": { "file": "drivers/video/fbdev/core/fb_defio.c" }, "signature_type": "Line", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@87b9802ca824fcee7915e717e9a60471af62e8e9" }, { "signature_version": "v1", "digest": { "length": 342.0, "function_hash": "27856199660949061341878625827920241241" }, "id": "CVE-2023-52731-d138c589", "deprecated": false, "target": { "file": "drivers/video/fbdev/core/fb_defio.c", "function": "fb_deferred_io_cleanup" }, "signature_type": "Function", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3efc61d95259956db25347e2a9562c3e54546e20" }, { "signature_version": "v1", "digest": { "threshold": 0.9, "line_hashes": [ "220971575929664324054009690615243493305", "9185951686281011176290410687136696656", "264287493988932985642503385094733320569", "139725680143808672036043953027139836404" ] }, "id": "CVE-2023-52731-e76702c8", "deprecated": false, "target": { "file": "drivers/video/fbdev/core/fbmem.c" }, "signature_type": "Line", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@f1d91f0e9d5a240a809698d7d9c5a538e7dcc149" } ] }