CVE-2026-93265 (GCVE-0-2026-93265)
Vulnerability from cvelistv5
Published
2026-09-24 15:52
Modified
2026-10-19 09:08
Summary
In the Linux kernel, the following vulnerability has been resolved: PCI/pwrctrl: tc9563: Fix parsing the integrated Ethernet MAC Endpoint node DSP3 has an integrated Ethernet MAC Endpoint which has its own set of config registers for configuring settings such as ASPM. The Endpoint device has two physical functions and those two functions share the same settings. Parse the Endpoint node under DSP3 instead of parsing both functions. The existing parsing logic also has one OOB issue as parsing both functions will result in accessing past the tc9563_pwrctrl->cfg array.
Impacted products
Vendor Product Version
Linux Linux Version: 4c9c7be47310c1dbd7b6d37d45986123f5b133b4
Version: 4c9c7be47310c1dbd7b6d37d45986123f5b133b4
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/pci/pwrctrl/pci-pwrctrl-tc9563.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "972c771674e88a43c8310c459ea30f0f0d0c168f",
              "status": "affected",
              "version": "4c9c7be47310c1dbd7b6d37d45986123f5b133b4",
              "versionType": "git"
            },
            {
              "lessThan": "6e5e6c2194b2acbded5b12ed80590d215b786d29",
              "status": "affected",
              "version": "4c9c7be47310c1dbd7b6d37d45986123f5b133b4",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/pci/pwrctrl/pci-pwrctrl-tc9563.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.19"
            },
            {
              "lessThan": "6.19",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.2.*",
              "status": "unaffected",
              "version": "7.2.6",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.3",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2.6",
                  "versionStartIncluding": "6.19",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.3",
                  "versionStartIncluding": "6.19",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nPCI/pwrctrl: tc9563: Fix parsing the integrated Ethernet MAC Endpoint node\n\nDSP3 has an integrated Ethernet MAC Endpoint which has its own set of\nconfig registers for configuring settings such as ASPM. The Endpoint device\nhas two physical functions and those two functions share the same settings.\n\nParse the Endpoint node under DSP3 instead of parsing both functions.  The\nexisting parsing logic also has one OOB issue as parsing both functions\nwill result in accessing past the tc9563_pwrctrl-\u003ecfg array."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.7,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - tc9563_pwrctrl_parse_device_dt() is reached from tc9563_pwrctrl_probe() after qcom_pcie_host_init() (also pci-imx6/mediatek-gen3) calls pci_pwrctrl_create_devices() and of_platform_device_create() binds compatible pci1179,0623. The overflowed cfg[] slot is filled from that local OF node (DSP3 ethernet children), not from a network or USB payload.\nAC:L - In-tree qcs6490-rb3gen2.dts and qcs6490-thundercomm-minipc-g1iot.dts put two children (pci@0,0 and pci@0,1) under pcie@3,0. The pre-fix DSP3 loop does port++ then tc9563_pwrctrl_parse_device_dt() for each child, so the second child always uses port==5 past cfg[TC9563_MAX]. No race.\nPR:N - tc9563_pwrctrl_probe() has no capable() check. PCI_PWRCTRL_TC9563 defaults m on ARCH_QCOM, and qcom_pcie_host_init() \u2192 pci_pwrctrl_create_devices() binds the pci1179,0623 node during PCIe host probe on those boards, so the cfg[] overflow runs without sysfs bind or credentials.\nUI:N - qcom_pcie_host_init() creates the pwrctrl platform device and tc9563_pwrctrl_probe() walks for_each_child_of_node_scoped() during driver-core probe; no other user must mount a filesystem, open a device, or plug the switch.\nS:U - The overflowed cfg[port] store and the overlapping reset_gpio/adapter/client fields are in the host-kernel struct tc9563_pwrctrl allocated in tc9563_pwrctrl_probe(); this is not a KVM/Xen guest-to-host escape or an IOMMU/DMA bypass.\nC:N - On the in-tree DSP3 ethernet nodes, of_property_read_u32() of aspm-l0s-entry-delay-ns/aspm-l1-entry-delay-ns returns -EINVAL and does not store. The OOB store is cfg-\u003edisable_dfe=false (one zero byte into adapter). Later i2c_put_adapter() faults on that non-canonical pointer without copying kernel memory to userspace.\nI:H - tc9563_pwrctrl_parse_device_dt() writes through \u0026tc9563-\u003ecfg[port] when the second DSP3 child increments port to 5, past cfg[TC9563_MAX-1]. That out-of-bounds store overwrites the following adapter (and reset_gpio if delay properties are present) pointers in struct tc9563_pwrctrl, a kernel OOB write.\nA:H - After the port==5 overwrite, tc9563_pwrctrl_remove() and the probe error path call i2c_put_adapter(tc9563-\u003eadapter) (or put_device(\u0026adapter-\u003edev)), which dereferences the corrupted adapter pointer and oopses or panics the host."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-10-19T09:08:18.380Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/972c771674e88a43c8310c459ea30f0f0d0c168f"
        },
        {
          "url": "https://git.kernel.org/stable/c/6e5e6c2194b2acbded5b12ed80590d215b786d29"
        }
      ],
      "title": "PCI/pwrctrl: tc9563: Fix parsing the integrated Ethernet MAC Endpoint node",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-93265",
    "datePublished": "2026-09-24T15:52:04.646Z",
    "dateReserved": "2026-09-17T16:02:15.097Z",
    "dateUpdated": "2026-10-19T09:08:18.380Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}


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.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • 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.


Loading…

Loading…