In the Linux kernel, the following vulnerability has been resolved:
Input: powermate - fix use-after-free in powermateconfigcomplete
syzbot has found a use-after-free bug [1] in the powermate driver. This happens when the device is disconnected, which leads to a memory free from the powermate_device struct. When an asynchronous control message completes after the kfree and its callback is invoked, the lock does not exist anymore and hence the bug.
Use usbkillurb() on pm->config to cancel any in-progress requests upon device disconnection.
[1] https://syzkaller.appspot.com/bug?extid=0434ac83f907a1dbdd1e
{ "vanir_signatures": [ { "id": "CVE-2023-52475-06ea700c", "signature_type": "Function", "target": { "file": "drivers/input/misc/powermate.c", "function": "powermate_disconnect" }, "signature_version": "v1", "digest": { "length": 318.0, "function_hash": "140576861689047512552813254540322666976" }, "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5aa514100aaf59868d745196258269a16737c7bd" }, { "id": "CVE-2023-52475-172d39a6", "signature_type": "Line", "target": { "file": "drivers/input/misc/powermate.c" }, "signature_version": "v1", "digest": { "line_hashes": [ "90002663127465550369441992902562606673", "226002541277720931130866924026298827311", "239045936181563480068127692863284400367", "168717051639774137708156314102949624401" ], "threshold": 0.9 }, "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5c15c60e7be615f05a45cd905093a54b11f461bc" }, { "id": "CVE-2023-52475-1f088c24", "signature_type": "Line", "target": { "file": "drivers/input/misc/powermate.c" }, "signature_version": "v1", "digest": { "line_hashes": [ "90002663127465550369441992902562606673", "226002541277720931130866924026298827311", "239045936181563480068127692863284400367", "168717051639774137708156314102949624401" ], "threshold": 0.9 }, "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@cd2fbfd8b922b7fdd50732e47d797754ab59cb06" }, { "id": "CVE-2023-52475-256af13e", "signature_type": "Function", "target": { "file": "drivers/input/misc/powermate.c", "function": "powermate_disconnect" }, "signature_version": "v1", "digest": { "length": 318.0, "function_hash": "140576861689047512552813254540322666976" }, "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5c15c60e7be615f05a45cd905093a54b11f461bc" }, { "id": "CVE-2023-52475-26773e03", "signature_type": "Function", "target": { "file": "drivers/input/misc/powermate.c", "function": "powermate_disconnect" }, "signature_version": "v1", "digest": { "length": 318.0, "function_hash": "140576861689047512552813254540322666976" }, "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@cd2fbfd8b922b7fdd50732e47d797754ab59cb06" }, { "id": "CVE-2023-52475-30f454d4", "signature_type": "Function", "target": { "file": "drivers/input/misc/powermate.c", "function": "powermate_disconnect" }, "signature_version": "v1", "digest": { "length": 318.0, "function_hash": "140576861689047512552813254540322666976" }, "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@67cace72606baf1758fd60feb358f4c6be92e1cc" }, { "id": "CVE-2023-52475-3893bbd8", "signature_type": "Function", "target": { "file": "drivers/input/misc/powermate.c", "function": "powermate_disconnect" }, "signature_version": "v1", "digest": { "length": 318.0, "function_hash": "140576861689047512552813254540322666976" }, "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6a4a396386404e62fb59bc3bde48871a64a82b4f" }, { "id": "CVE-2023-52475-419bd9ec", "signature_type": "Line", "target": { "file": "drivers/input/misc/powermate.c" }, "signature_version": "v1", "digest": { "line_hashes": [ "90002663127465550369441992902562606673", "226002541277720931130866924026298827311", "239045936181563480068127692863284400367", "168717051639774137708156314102949624401" ], "threshold": 0.9 }, "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e528b1b9d60743e0b26224e3fe7aa74c24b8b2f8" }, { "id": "CVE-2023-52475-59b55c3a", "signature_type": "Line", "target": { "file": "drivers/input/misc/powermate.c" }, "signature_version": "v1", "digest": { "line_hashes": [ "90002663127465550369441992902562606673", "226002541277720931130866924026298827311", "239045936181563480068127692863284400367", "168717051639774137708156314102949624401" ], "threshold": 0.9 }, "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5aa514100aaf59868d745196258269a16737c7bd" }, { "id": "CVE-2023-52475-5f8335cb", "signature_type": "Function", "target": { "file": "drivers/input/misc/powermate.c", "function": "powermate_disconnect" }, "signature_version": "v1", "digest": { "length": 318.0, "function_hash": "140576861689047512552813254540322666976" }, "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2efe67c581a2a6122b328d4bb6f21b3f36f40d46" }, { "id": "CVE-2023-52475-6617cddb", "signature_type": "Line", "target": { "file": "drivers/input/misc/powermate.c" }, "signature_version": "v1", "digest": { "line_hashes": [ "90002663127465550369441992902562606673", "226002541277720931130866924026298827311", "239045936181563480068127692863284400367", "168717051639774137708156314102949624401" ], "threshold": 0.9 }, "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6a4a396386404e62fb59bc3bde48871a64a82b4f" }, { "id": "CVE-2023-52475-7960517a", "signature_type": "Line", "target": { "file": "drivers/input/misc/powermate.c" }, "signature_version": "v1", "digest": { "line_hashes": [ "90002663127465550369441992902562606673", "226002541277720931130866924026298827311", "239045936181563480068127692863284400367", "168717051639774137708156314102949624401" ], "threshold": 0.9 }, "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@67cace72606baf1758fd60feb358f4c6be92e1cc" }, { "id": "CVE-2023-52475-80cd2b1c", "signature_type": "Function", "target": { "file": "drivers/input/misc/powermate.c", "function": "powermate_disconnect" }, "signature_version": "v1", "digest": { "length": 318.0, "function_hash": "140576861689047512552813254540322666976" }, "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e528b1b9d60743e0b26224e3fe7aa74c24b8b2f8" }, { "id": "CVE-2023-52475-921e41f9", "signature_type": "Function", "target": { "file": "drivers/input/misc/powermate.c", "function": "powermate_disconnect" }, "signature_version": "v1", "digest": { "length": 318.0, "function_hash": "140576861689047512552813254540322666976" }, "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@8677575c4f39d65bf0d719b5d20e8042e550ccb9" }, { "id": "CVE-2023-52475-c2ecd500", "signature_type": "Line", "target": { "file": "drivers/input/misc/powermate.c" }, "signature_version": "v1", "digest": { "line_hashes": [ "90002663127465550369441992902562606673", "226002541277720931130866924026298827311", "239045936181563480068127692863284400367", "168717051639774137708156314102949624401" ], "threshold": 0.9 }, "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@8677575c4f39d65bf0d719b5d20e8042e550ccb9" }, { "id": "CVE-2023-52475-e41eac92", "signature_type": "Line", "target": { "file": "drivers/input/misc/powermate.c" }, "signature_version": "v1", "digest": { "line_hashes": [ "90002663127465550369441992902562606673", "226002541277720931130866924026298827311", "239045936181563480068127692863284400367", "168717051639774137708156314102949624401" ], "threshold": 0.9 }, "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2efe67c581a2a6122b328d4bb6f21b3f36f40d46" } ] }