CVE-2026-93225 (GCVE-0-2026-93225)

Vulnerability from cvelistv5 – Published: 2026-09-24 15:21 – Updated: 2026-09-25 05:09
VLAI
Title
phy: fsl-imx8mq-usb: fix typec switch leak on probe error path
Summary
In the Linux kernel, the following vulnerability has been resolved: phy: fsl-imx8mq-usb: fix typec switch leak on probe error path If probe fails after imx95_usb_phy_get_tca() succeeds, the typec switch leaks because the only cleanup path was in .remove(), which never runs on probe failure. Use devm_add_action_or_reset() so the switch is cleaned up on both probe failure and driver removal. The imx95_usb_phy_put_tca() is no longer needed, it will be removed in .remove() too.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: b58f0f86fd6156d7b084257f5c91ceaf7d760927 , < f1b7b2c7ffa9711d1298f52790b377fe02efc1db (git)
Affected: b58f0f86fd6156d7b084257f5c91ceaf7d760927 , < 84646f5b945a370f6999eed59a334387b0abc282 (git)
Affected: b58f0f86fd6156d7b084257f5c91ceaf7d760927 , < 87a1805b1c346b092c34f96f3806f207792910e1 (git)
guessed Create a notification for this product.
Linux Linux Affected: 6.15
Unaffected: 0 , < 6.15 (semver)
Unaffected: 6.18.50 , ≤ 6.18.* (semver)
Unaffected: 7.2.4 , ≤ 7.2.* (semver)
Unaffected: 7.3-rc1 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/phy/freescale/phy-fsl-imx8mq-usb.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "f1b7b2c7ffa9711d1298f52790b377fe02efc1db",
              "status": "affected",
              "version": "b58f0f86fd6156d7b084257f5c91ceaf7d760927",
              "versionType": "git"
            },
            {
              "lessThan": "84646f5b945a370f6999eed59a334387b0abc282",
              "status": "affected",
              "version": "b58f0f86fd6156d7b084257f5c91ceaf7d760927",
              "versionType": "git"
            },
            {
              "lessThan": "87a1805b1c346b092c34f96f3806f207792910e1",
              "status": "affected",
              "version": "b58f0f86fd6156d7b084257f5c91ceaf7d760927",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/phy/freescale/phy-fsl-imx8mq-usb.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.15"
            },
            {
              "lessThan": "6.15",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.50",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.2.*",
              "status": "unaffected",
              "version": "7.2.4",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.3-rc1",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.50",
                  "versionStartIncluding": "6.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2.4",
                  "versionStartIncluding": "6.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.3-rc1",
                  "versionStartIncluding": "6.15",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nphy: fsl-imx8mq-usb: fix typec switch leak on probe error path\n\nIf probe fails after imx95_usb_phy_get_tca() succeeds, the typec\nswitch leaks because the only cleanup path was in .remove(), which\nnever runs on probe failure.\n\nUse devm_add_action_or_reset() so the switch is cleaned up on both\nprobe failure and driver removal. The imx95_usb_phy_put_tca() is no\nlonger needed, it will be removed in .remove() too."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.4,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - The leak is created in imx8mq_usb_phy_probe() after tca_blk_get_typec_switch() calls typec_switch_register(); the entry point is platform_probe of DT node usb3_phy@4c1f0040 (compatible fsl,imx95-usb-phy). No USB or network protocol message carries the trigger; this is a probe error-path leak.\nAC:H - After imx95_usb_phy_get_tca() succeeds, the only later failure is ENOMEM from kzalloc/devres_alloc in __devm_of_phy_provider_register(); imx8m_get_phy_tuning_data() cannot fail. That GFP_KERNEL failure is not attacker-controlled, and suppress_bind_attrs=true blocks sysfs rebind of imx8mq-usb-phy.\nPR:N - imx8mq_usb_phy_probe() has no capable() check. PHY_FSL_IMX8MQ_USB defaults y on ARCH_MXC\u0026\u0026ARM64, so of_platform populate binds usb3_phy@4c1f0040 during kernel init on i.MX95 boards that set status=okay. Sysfs bind is not required and is disabled by suppress_bind_attrs.\nUI:N - of_platform probe of usb3_phy and a later tcpci/tcpm_register_port() of ptn5110@50 (imx95-19x19-evk typec_con) run unattended at boot. typec_register_port() calls typec_switch_get() without a mount, open, or USB-C cable plug.\nS:U - The leaked typec_switch_dev, the devres free of imx8mq_usb_phy, and tca_blk_typec_switch_set() run in the host kernel PHY/Type-C stack. This is not a KVM/Xen guest-to-host escape or an IOMMU/DMA bypass.\nC:H - typec_switch_register() stores drvdata=imx_phy; probe failure then frees that imx8mq_usb_phy via devres while the class device remains. tca_blk_typec_switch_set() reads the freed object via typec_switch_get_drvdata() when TCPM\u0027s tcpm_mux_set() calls typec_set_orientation().\nI:H - The same dangling drvdata is used by tca_blk_typec_switch_set() to clk_prepare_enable(imx_phy-\u003eclk) and by tca_blk_orientation_set() to writel() TCA_GCFG/TCA_SYSMODE_CFG through tca-\u003ebase; reclaiming the freed imx8mq_usb_phy/tca_blk slab is a write and control-flow primitive.\nA:H - Once probe fails, fwnode_typec_switch_get() does try_module_get(sw_dev-\u003edev.parent-\u003edriver-\u003eowner) with parent-\u003edriver NULL, or tca_blk_typec_switch_set() dereferences the freed imx_phy; either path oopses the i.MX95 host."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-09-25T05:09:46.847Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/f1b7b2c7ffa9711d1298f52790b377fe02efc1db"
        },
        {
          "url": "https://git.kernel.org/stable/c/84646f5b945a370f6999eed59a334387b0abc282"
        },
        {
          "url": "https://git.kernel.org/stable/c/87a1805b1c346b092c34f96f3806f207792910e1"
        }
      ],
      "title": "phy: fsl-imx8mq-usb: fix typec switch leak on probe error path",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-93225",
    "datePublished": "2026-09-24T15:21:12.635Z",
    "dateReserved": "2026-09-17T16:02:15.094Z",
    "dateUpdated": "2026-09-25T05:09:46.847Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-93225",
      "date": "2026-09-28",
      "epss": "0.00144",
      "percentile": "0.03038"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "drivers/phy/freescale/phy-fsl-imx8mq-usb.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "f1b7b2c7ffa9711d1298f52790b377fe02efc1db",
                    "status": "affected",
                    "version": "b58f0f86fd6156d7b084257f5c91ceaf7d760927",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "84646f5b945a370f6999eed59a334387b0abc282",
                    "status": "affected",
                    "version": "b58f0f86fd6156d7b084257f5c91ceaf7d760927",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "87a1805b1c346b092c34f96f3806f207792910e1",
                    "status": "affected",
                    "version": "b58f0f86fd6156d7b084257f5c91ceaf7d760927",
                    "versionType": "git"
                  }
                ]
              },
              {
                "defaultStatus": "affected",
                "product": "Linux",
                "programFiles": [
                  "drivers/phy/freescale/phy-fsl-imx8mq-usb.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "status": "affected",
                    "version": "6.15"
                  },
                  {
                    "lessThan": "6.15",
                    "status": "unaffected",
                    "version": "0",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.18.*",
                    "status": "unaffected",
                    "version": "6.18.50",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "7.2.*",
                    "status": "unaffected",
                    "version": "7.2.4",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "*",
                    "status": "unaffected",
                    "version": "7.3-rc1",
                    "versionType": "original_commit_for_fix"
                  }
                ]
              }
            ],
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
          }
        ],
        "cveTags": [],
        "descriptions": [
          {
            "lang": "en",
            "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nphy: fsl-imx8mq-usb: fix typec switch leak on probe error path\n\nIf probe fails after imx95_usb_phy_get_tca() succeeds, the typec\nswitch leaks because the only cleanup path was in .remove(), which\nnever runs on probe failure.\n\nUse devm_add_action_or_reset() so the switch is cleaned up on both\nprobe failure and driver removal. The imx95_usb_phy_put_tca() is no\nlonger needed, it will be removed in .remove() too."
          }
        ],
        "id": "CVE-2026-93225",
        "lastModified": "2026-09-25T05:17:00.443",
        "metrics": {
          "cvssMetricV31": [
            {
              "cvssData": {
                "attackComplexity": "HIGH",
                "attackVector": "LOCAL",
                "availabilityImpact": "HIGH",
                "baseScore": 7.4,
                "baseSeverity": "HIGH",
                "confidentialityImpact": "HIGH",
                "integrityImpact": "HIGH",
                "privilegesRequired": "NONE",
                "scope": "UNCHANGED",
                "userInteraction": "NONE",
                "vectorString": "CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H",
                "version": "3.1"
              },
              "exploitabilityScore": 1.4,
              "impactScore": 5.9,
              "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
              "type": "Secondary"
            }
          ]
        },
        "published": "2026-09-24T16:17:17.857",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/84646f5b945a370f6999eed59a334387b0abc282"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/87a1805b1c346b092c34f96f3806f207792910e1"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/f1b7b2c7ffa9711d1298f52790b377fe02efc1db"
          }
        ],
        "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "vulnStatus": "Received"
      }
    },
    "suse_vex": {
      "aggregate_severity": "moderate",
      "current_release_date": "2026-09-25T23:50:27Z",
      "cve": "CVE-2026-93225",
      "id": "CVE-2026-93225",
      "initial_release_date": "2026-09-24T23:49:41Z",
      "product_status:known_not_affected": "347",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2026-93225",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2026-93225.json",
      "version": "3"
    }
  }
}



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…

Loading…

Loading…

Related by attack behaviour

Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.


Loading…