In the Linux kernel, the following vulnerability has been resolved:
platform/x86: lenovo-yoga-tab2-pro-1380-fastcharger: fix serdev race
The yt21380fcserdevprobe() function calls devmserdevdeviceopen() before setting the client ops via serdevdevicesetclientops(). This ordering can trigger a NULL pointer dereference in the serdev controller's receivebuf handler, as it assumes serdev->ops is valid when SERPORT_ACTIVE is set.
This is similar to the issue fixed in commit 5e700b384ec1 ("platform/chrome: crosecuart: properly fix race condition") where devmserdevdevice_open() was called before fully initializing the device.
Fix the race by ensuring client ops are set before enabling the port via devmserdevdevice_open().
Note, serdevdevicesetbaudrate() and serdevdevicesetflowcontrol() calls should be after the devmserdevdeviceopen() call.
[
{
"signature_type": "Line",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@59616a91e5e74833b2008b56c66879857c616006",
"digest": {
"line_hashes": [
"77659742949687059652305711471105783550",
"277435500250892428819230993705980499140",
"338909915558777175192928751086602498625",
"165648129539787129017015306046521104360",
"224957815455914514098903457669681490697",
"180939764710325794071205074071323198531",
"5121672561304629556668492821595574643",
"186243188063654578034906395551038367387",
"267364344792848107311230067103711589888",
"293921938673857249084014523157528997975"
],
"threshold": 0.9
},
"id": "CVE-2025-21685-8099ed53",
"signature_version": "v1",
"target": {
"file": "drivers/platform/x86/lenovo-yoga-tab2-pro-1380-fastcharger.c"
}
},
{
"signature_type": "Function",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3f67e07873df3c6d9ce2582260b83732e1d3a40b",
"digest": {
"length": 1796.0,
"function_hash": "170354666520807760678725390286979842380"
},
"id": "CVE-2025-21685-b0f07065",
"signature_version": "v1",
"target": {
"function": "yt2_1380_fc_serdev_probe",
"file": "drivers/platform/x86/lenovo-yoga-tab2-pro-1380-fastcharger.c"
}
},
{
"signature_type": "Line",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3f67e07873df3c6d9ce2582260b83732e1d3a40b",
"digest": {
"line_hashes": [
"77659742949687059652305711471105783550",
"277435500250892428819230993705980499140",
"338909915558777175192928751086602498625",
"165648129539787129017015306046521104360",
"224957815455914514098903457669681490697",
"180939764710325794071205074071323198531",
"5121672561304629556668492821595574643",
"186243188063654578034906395551038367387",
"267364344792848107311230067103711589888",
"293921938673857249084014523157528997975"
],
"threshold": 0.9
},
"id": "CVE-2025-21685-b18ede28",
"signature_version": "v1",
"target": {
"file": "drivers/platform/x86/lenovo-yoga-tab2-pro-1380-fastcharger.c"
}
},
{
"signature_type": "Function",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@59616a91e5e74833b2008b56c66879857c616006",
"digest": {
"length": 1796.0,
"function_hash": "170354666520807760678725390286979842380"
},
"id": "CVE-2025-21685-b2efc6c1",
"signature_version": "v1",
"target": {
"function": "yt2_1380_fc_serdev_probe",
"file": "drivers/platform/x86/lenovo-yoga-tab2-pro-1380-fastcharger.c"
}
}
]