CVE-2025-21685
Vulnerability from cvelistv5
Published
2025-02-09 11:37
Modified
2025-02-09 11:37
Severity ?
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.
Impacted products
Vendor Product Version
Linux Linux Version: b2ed33e8d486ab2f1920131dd76fab38c8ef3550
Version: b2ed33e8d486ab2f1920131dd76fab38c8ef3550
Create a notification for this product.
   Linux Linux Version: 6.10
Create a notification for this product.
Show details on NVD website


{
  "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\"]}]}}"
  }
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

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.