CVE-2025-21685
Vulnerability from cvelistv5
Published
2025-02-09 11:37
Modified
2025-02-09 11:37
Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
platform/x86: lenovo-yoga-tab2-pro-1380-fastcharger: fix serdev race
The yt2_1380_fc_serdev_probe() function calls devm_serdev_device_open()
before setting the client ops via serdev_device_set_client_ops(). This
ordering can trigger a NULL pointer dereference in the serdev controller's
receive_buf 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: cros_ec_uart: properly fix race condition") where
devm_serdev_device_open() was called before fully initializing the
device.
Fix the race by ensuring client ops are set before enabling the port via
devm_serdev_device_open().
Note, serdev_device_set_baudrate() and serdev_device_set_flow_control()
calls should be after the devm_serdev_device_open() call.
References
Impacted products
{ "containers": { "cna": { "affected": [ { "defaultStatus": "unaffected", "product": "Linux", "programFiles": [ "drivers/platform/x86/lenovo-yoga-tab2-pro-1380-fastcharger.c" ], "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "vendor": "Linux", "versions": [ { "lessThan": "3f67e07873df3c6d9ce2582260b83732e1d3a40b", "status": "affected", "version": "b2ed33e8d486ab2f1920131dd76fab38c8ef3550", "versionType": "git" }, { "lessThan": "59616a91e5e74833b2008b56c66879857c616006", "status": "affected", "version": "b2ed33e8d486ab2f1920131dd76fab38c8ef3550", "versionType": "git" } ] }, { "defaultStatus": "affected", "product": "Linux", "programFiles": [ "drivers/platform/x86/lenovo-yoga-tab2-pro-1380-fastcharger.c" ], "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "vendor": "Linux", "versions": [ { "status": "affected", "version": "6.10" }, { "lessThan": "6.10", "status": "unaffected", "version": "0", "versionType": "semver" }, { "lessThanOrEqual": "6.12.*", "status": "unaffected", "version": "6.12.11", "versionType": "semver" }, { "lessThanOrEqual": "*", "status": "unaffected", "version": "6.13", "versionType": "original_commit_for_fix" } ] } ], "descriptions": [ { "lang": "en", "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nplatform/x86: lenovo-yoga-tab2-pro-1380-fastcharger: fix serdev race\n\nThe yt2_1380_fc_serdev_probe() function calls devm_serdev_device_open()\nbefore setting the client ops via serdev_device_set_client_ops(). This\nordering can trigger a NULL pointer dereference in the serdev controller\u0027s\nreceive_buf handler, as it assumes serdev-\u003eops is valid when\nSERPORT_ACTIVE is set.\n\nThis is similar to the issue fixed in commit 5e700b384ec1\n(\"platform/chrome: cros_ec_uart: properly fix race condition\") where\ndevm_serdev_device_open() was called before fully initializing the\ndevice.\n\nFix the race by ensuring client ops are set before enabling the port via\ndevm_serdev_device_open().\n\nNote, serdev_device_set_baudrate() and serdev_device_set_flow_control()\ncalls should be after the devm_serdev_device_open() call." } ], "providerMetadata": { "dateUpdated": "2025-02-09T11:37:25.264Z", "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "shortName": "Linux" }, "references": [ { "url": "https://git.kernel.org/stable/c/3f67e07873df3c6d9ce2582260b83732e1d3a40b" }, { "url": "https://git.kernel.org/stable/c/59616a91e5e74833b2008b56c66879857c616006" } ], "title": "platform/x86: lenovo-yoga-tab2-pro-1380-fastcharger: fix serdev race", "x_generator": { "engine": "bippy-5f407fcff5a0" } } }, "cveMetadata": { "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "assignerShortName": "Linux", "cveId": "CVE-2025-21685", "datePublished": "2025-02-09T11:37:25.264Z", "dateReserved": "2024-12-29T08:45:45.740Z", "dateUpdated": "2025-02-09T11:37:25.264Z", "state": "PUBLISHED" }, "dataType": "CVE_RECORD", "dataVersion": "5.1", "vulnerability-lookup:meta": { "nvd": "{\"cve\":{\"id\":\"CVE-2025-21685\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2025-02-09T12:15:29.737\",\"lastModified\":\"2025-02-11T16:11:19.543\",\"vulnStatus\":\"Analyzed\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nplatform/x86: lenovo-yoga-tab2-pro-1380-fastcharger: fix serdev race\\n\\nThe yt2_1380_fc_serdev_probe() function calls devm_serdev_device_open()\\nbefore setting the client ops via serdev_device_set_client_ops(). This\\nordering can trigger a NULL pointer dereference in the serdev controller\u0027s\\nreceive_buf handler, as it assumes serdev-\u003eops is valid when\\nSERPORT_ACTIVE is set.\\n\\nThis is similar to the issue fixed in commit 5e700b384ec1\\n(\\\"platform/chrome: cros_ec_uart: properly fix race condition\\\") where\\ndevm_serdev_device_open() was called before fully initializing the\\ndevice.\\n\\nFix the race by ensuring client ops are set before enabling the port via\\ndevm_serdev_device_open().\\n\\nNote, serdev_device_set_baudrate() and serdev_device_set_flow_control()\\ncalls should be after the devm_serdev_device_open() call.\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: platform/x86: lenovo-yoga-tab2-pro-1380-fastcharger: corregir la condici\u00f3n de ejecuci\u00f3n de serdev La funci\u00f3n yt2_1380_fc_serdev_probe() llama a devm_serdev_device_open() antes de configurar las operaciones del cliente a trav\u00e9s de serdev_device_set_client_ops(). Este orden puede desencadenar una desreferencia de puntero NULL en el controlador de recepci\u00f3n de serdev, ya que asume que serdev-\u0026gt;ops es v\u00e1lido cuando SERPORT_ACTIVE est\u00e1 configurado. Esto es similar al problema corregido en el commit 5e700b384ec1 (\\\"platform/chrome: cros_ec_uart: corregir correctamente la condici\u00f3n de ejecuci\u00f3n\\\") donde se llam\u00f3 a devm_serdev_device_open() antes de inicializar completamente el dispositivo. Corrija la ejecuci\u00f3n asegur\u00e1ndose de que las operaciones del cliente est\u00e9n configuradas antes de habilitar el puerto a trav\u00e9s de devm_serdev_device_open(). Tenga en cuenta que las llamadas a serdev_device_set_baudrate() y serdev_device_set_flow_control() deben realizarse despu\u00e9s de la llamada a devm_serdev_device_open(). \"}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H\",\"baseScore\":4.7,\"baseSeverity\":\"MEDIUM\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"HIGH\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"NONE\",\"integrityImpact\":\"NONE\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.0,\"impactScore\":3.6}]},\"weaknesses\":[{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"description\":[{\"lang\":\"en\",\"value\":\"CWE-476\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.10\",\"versionEndExcluding\":\"6.12.11\",\"matchCriteriaId\":\"6286FEA9-6512-4F9C-BC4B-946CCBF33127\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.13:rc1:*:*:*:*:*:*\",\"matchCriteriaId\":\"62567B3C-6CEE-46D0-BC2E-B3717FBF7D13\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.13:rc2:*:*:*:*:*:*\",\"matchCriteriaId\":\"5A073481-106D-4B15-B4C7-FB0213B8E1D4\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.13:rc3:*:*:*:*:*:*\",\"matchCriteriaId\":\"DE491969-75AE-4A6B-9A58-8FC5AF98798F\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.13:rc4:*:*:*:*:*:*\",\"matchCriteriaId\":\"93C0660D-7FB8-4FBA-892A-B064BA71E49E\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.13:rc5:*:*:*:*:*:*\",\"matchCriteriaId\":\"034C36A6-C481-41F3-AE9A-D116E5BE6895\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.13:rc6:*:*:*:*:*:*\",\"matchCriteriaId\":\"8AF9DC49-2085-4FFB-A7E3-73DFAFECC7F2\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.13:rc7:*:*:*:*:*:*\",\"matchCriteriaId\":\"5DFCDFB8-4FD0-465A-9076-D813D78FE51B\"}]}]}],\"references\":[{\"url\":\"https://git.kernel.org/stable/c/3f67e07873df3c6d9ce2582260b83732e1d3a40b\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/59616a91e5e74833b2008b56c66879857c616006\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]}]}}" } }
Loading…
Loading…
Sightings
Author | Source | Type | Date |
---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
- Confirmed: The vulnerability is confirmed from an analyst perspective.
- Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
- Patched: This vulnerability was successfully patched by the user reporting the sighting.
- Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
- Not confirmed: The user expresses doubt about the veracity of the vulnerability.
- Not patched: This vulnerability was not successfully patched by the user reporting the sighting.