CVE-2025-68781 (GCVE-0-2025-68781)

Vulnerability from cvelistv5 – Published: 2026-01-13 15:28 – Updated: 2026-05-11 21:53
VLAI
Title
usb: phy: fsl-usb: Fix use-after-free in delayed work during device removal
Summary
In the Linux kernel, the following vulnerability has been resolved: usb: phy: fsl-usb: Fix use-after-free in delayed work during device removal The delayed work item otg_event is initialized in fsl_otg_conf() and scheduled under two conditions: 1. When a host controller binds to the OTG controller. 2. When the USB ID pin state changes (cable insertion/removal). A race condition occurs when the device is removed via fsl_otg_remove(): the fsl_otg instance may be freed while the delayed work is still pending or executing. This leads to use-after-free when the work function fsl_otg_event() accesses the already freed memory. The problematic scenario: (detach thread) | (delayed work) fsl_otg_remove() | kfree(fsl_otg_dev) //FREE| fsl_otg_event() | og = container_of(...) //USE | og-> //USE Fix this by calling disable_delayed_work_sync() in fsl_otg_remove() before deallocating the fsl_otg structure. This ensures the delayed work is properly canceled and completes execution prior to memory deallocation. This bug was identified through static analysis.
Severity
No CVSS data available.
Assigner
Impacted products
Vendor Product Version
Linux Linux Affected: 0807c500a1a6d7fa20cbd7bbe7fea14a66112463 , < 4476c73bbbb09b13a962176fca934b32d3954a2e (git)
Affected: 0807c500a1a6d7fa20cbd7bbe7fea14a66112463 , < 319f7a85b3c4e34ac2fe083eb146fe129a556317 (git)
Affected: 0807c500a1a6d7fa20cbd7bbe7fea14a66112463 , < 69f9a0701abc3d1f8225074c56c27e6c16a37222 (git)
Affected: 0807c500a1a6d7fa20cbd7bbe7fea14a66112463 , < 2e7c47e2eb3cfeadf78a1ccbac8492c60d508f23 (git)
Affected: 0807c500a1a6d7fa20cbd7bbe7fea14a66112463 , < 41ca62e3e21e48c2903b3b45e232cf4f2ff7434f (git)
Create a notification for this product.
Linux Linux Affected: 3.0
Unaffected: 0 , < 3.0 (semver)
Unaffected: 6.1.160 , ≤ 6.1.* (semver)
Unaffected: 6.6.120 , ≤ 6.6.* (semver)
Unaffected: 6.12.64 , ≤ 6.12.* (semver)
Unaffected: 6.18.3 , ≤ 6.18.* (semver)
Unaffected: 6.19 , ≤ * (original_commit_for_fix)
Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/usb/phy/phy-fsl-usb.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "4476c73bbbb09b13a962176fca934b32d3954a2e",
              "status": "affected",
              "version": "0807c500a1a6d7fa20cbd7bbe7fea14a66112463",
              "versionType": "git"
            },
            {
              "lessThan": "319f7a85b3c4e34ac2fe083eb146fe129a556317",
              "status": "affected",
              "version": "0807c500a1a6d7fa20cbd7bbe7fea14a66112463",
              "versionType": "git"
            },
            {
              "lessThan": "69f9a0701abc3d1f8225074c56c27e6c16a37222",
              "status": "affected",
              "version": "0807c500a1a6d7fa20cbd7bbe7fea14a66112463",
              "versionType": "git"
            },
            {
              "lessThan": "2e7c47e2eb3cfeadf78a1ccbac8492c60d508f23",
              "status": "affected",
              "version": "0807c500a1a6d7fa20cbd7bbe7fea14a66112463",
              "versionType": "git"
            },
            {
              "lessThan": "41ca62e3e21e48c2903b3b45e232cf4f2ff7434f",
              "status": "affected",
              "version": "0807c500a1a6d7fa20cbd7bbe7fea14a66112463",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/usb/phy/phy-fsl-usb.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "3.0"
            },
            {
              "lessThan": "3.0",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.160",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.120",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.64",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.3",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.19",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.160",
                  "versionStartIncluding": "3.0",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.120",
                  "versionStartIncluding": "3.0",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.64",
                  "versionStartIncluding": "3.0",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.3",
                  "versionStartIncluding": "3.0",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.19",
                  "versionStartIncluding": "3.0",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nusb: phy: fsl-usb: Fix use-after-free in delayed work during device removal\n\nThe delayed work item otg_event is initialized in fsl_otg_conf() and\nscheduled under two conditions:\n1. When a host controller binds to the OTG controller.\n2. When the USB ID pin state changes (cable insertion/removal).\n\nA race condition occurs when the device is removed via fsl_otg_remove():\nthe fsl_otg instance may be freed while the delayed work is still pending\nor executing. This leads to use-after-free when the work function\nfsl_otg_event() accesses the already freed memory.\n\nThe problematic scenario:\n\n(detach thread)            | (delayed work)\nfsl_otg_remove()           |\n  kfree(fsl_otg_dev) //FREE| fsl_otg_event()\n                           |   og = container_of(...) //USE\n                           |   og-\u003e //USE\n\nFix this by calling disable_delayed_work_sync() in fsl_otg_remove()\nbefore deallocating the fsl_otg structure. This ensures the delayed work\nis properly canceled and completes execution prior to memory deallocation.\n\nThis bug was identified through static analysis."
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-05-11T21:53:13.732Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/4476c73bbbb09b13a962176fca934b32d3954a2e"
        },
        {
          "url": "https://git.kernel.org/stable/c/319f7a85b3c4e34ac2fe083eb146fe129a556317"
        },
        {
          "url": "https://git.kernel.org/stable/c/69f9a0701abc3d1f8225074c56c27e6c16a37222"
        },
        {
          "url": "https://git.kernel.org/stable/c/2e7c47e2eb3cfeadf78a1ccbac8492c60d508f23"
        },
        {
          "url": "https://git.kernel.org/stable/c/41ca62e3e21e48c2903b3b45e232cf4f2ff7434f"
        }
      ],
      "title": "usb: phy: fsl-usb: Fix use-after-free in delayed work during device removal",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2025-68781",
    "datePublished": "2026-01-13T15:28:56.261Z",
    "dateReserved": "2025-12-24T10:30:51.036Z",
    "dateUpdated": "2026-05-11T21:53:13.732Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2025-68781",
      "date": "2026-05-27",
      "epss": "0.00069",
      "percentile": "0.21266"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2025-68781\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2026-01-13T16:15:57.773\",\"lastModified\":\"2026-01-14T16:26:00.933\",\"vulnStatus\":\"Awaiting Analysis\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nusb: phy: fsl-usb: Fix use-after-free in delayed work during device removal\\n\\nThe delayed work item otg_event is initialized in fsl_otg_conf() and\\nscheduled under two conditions:\\n1. When a host controller binds to the OTG controller.\\n2. When the USB ID pin state changes (cable insertion/removal).\\n\\nA race condition occurs when the device is removed via fsl_otg_remove():\\nthe fsl_otg instance may be freed while the delayed work is still pending\\nor executing. This leads to use-after-free when the work function\\nfsl_otg_event() accesses the already freed memory.\\n\\nThe problematic scenario:\\n\\n(detach thread)            | (delayed work)\\nfsl_otg_remove()           |\\n  kfree(fsl_otg_dev) //FREE| fsl_otg_event()\\n                           |   og = container_of(...) //USE\\n                           |   og-\u003e //USE\\n\\nFix this by calling disable_delayed_work_sync() in fsl_otg_remove()\\nbefore deallocating the fsl_otg structure. This ensures the delayed work\\nis properly canceled and completes execution prior to memory deallocation.\\n\\nThis bug was identified through static analysis.\"}],\"metrics\":{},\"references\":[{\"url\":\"https://git.kernel.org/stable/c/2e7c47e2eb3cfeadf78a1ccbac8492c60d508f23\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/319f7a85b3c4e34ac2fe083eb146fe129a556317\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/41ca62e3e21e48c2903b3b45e232cf4f2ff7434f\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/4476c73bbbb09b13a962176fca934b32d3954a2e\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/69f9a0701abc3d1f8225074c56c27e6c16a37222\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}]}}"
  }
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…
Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.


Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…