← Back to CVE Explorer

CVE-2026-90315

Full vulnerability record from the local CVENow database.

Description

In the Linux kernel, the following vulnerability has been resolved: PCI/sysfs: Add lockdown checks to legacy I/O and memory handlers Currently, the legacy I/O and memory sysfs handlers do not check security_locked_down(LOCKDOWN_PCI_ACCESS), leaving the legacy_io and legacy_mem files unprotected when the kernel is locked down. Commit eb627e17727e ("PCI: Lock down BAR access when the kernel is locked down") added the check to pci_write_config(), pci_mmap_resource(), and pci_write_resource_io() to prevent userspace from programming DMA-capable hardware that could be used to modify kernel code, but did not cover the legacy handlers. As a result, root can still write arbitrary I/O ports and map the legacy I/O and memory spaces while the kernel is locked down, which is the same capability the lockdown is meant to remove. Add the same check to pci_write_legacy_io(), pci_mmap_legacy_mem(), and pci_mmap_legacy_io(). These generic handlers cover both architectures that define HAVE_PCI_LEGACY (such as Alpha and PowerPC). [bhelgaas: add Link]

Severity
Not scored
CVSS score
Not available
Vulnerability status
Received
Source identifier
416baaa9-dc9f-4396-8d5f-8c081fb06d67
Published
2026-09-17 17:17:29.340000
Last modified
2026-10-19 09:19:25.460000
View original CVE JSON
{
  "id": "CVE-2026-90315",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
  "published": "2026-09-17T17:17:29.340",
  "lastModified": "2026-10-19T09:19:25.460",
  "vulnStatus": "Received",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nPCI/sysfs: Add lockdown checks to legacy I/O and memory handlers\n\nCurrently, the legacy I/O and memory sysfs handlers do not check\nsecurity_locked_down(LOCKDOWN_PCI_ACCESS), leaving the legacy_io and\nlegacy_mem files unprotected when the kernel is locked down.\n\nCommit eb627e17727e (\"PCI: Lock down BAR access when the kernel is locked\ndown\") added the check to pci_write_config(), pci_mmap_resource(), and\npci_write_resource_io() to prevent userspace from programming DMA-capable\nhardware that could be used to modify kernel code, but did not cover the\nlegacy handlers.\n\nAs a result, root can still write arbitrary I/O ports and map the legacy\nI/O and memory spaces while the kernel is locked down, which is the same\ncapability the lockdown is meant to remove.\n\nAdd the same check to pci_write_legacy_io(), pci_mmap_legacy_mem(), and\npci_mmap_legacy_io().\n\nThese generic handlers cover both architectures that define HAVE_PCI_LEGACY\n(such as Alpha and PowerPC).\n\n[bhelgaas: add Link]"
    }
  ],
  "affected": [
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "affectedData": [
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "unaffected",
          "programFiles": [
            "drivers/pci/pci-sysfs.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "eb627e17727ebeede70697ae1798688b0d328b54",
              "lessThan": "3556caa31a2bfbc22c11b812fd4ed8851c2d7bff",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "eb627e17727ebeede70697ae1798688b0d328b54",
              "lessThan": "cd07aef510ac6a2873e01f9ddddc5492490b0067",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "eb627e17727ebeede70697ae1798688b0d328b54",
              "lessThan": "747b9bbbbdfdee51aee2456388f9b94b5086de4d",
              "versionType": "git",
              "status": "affected"
            }
          ]
        },
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "affected",
          "programFiles": [
            "drivers/pci/pci-sysfs.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "5.4",
              "status": "affected"
            },
            {
              "version": "0",
              "lessThan": "5.4",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.18.57",
              "lessThanOrEqual": "6.18.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "7.2.6",
              "lessThanOrEqual": "7.2.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "7.3",
              "lessThanOrEqual": "*",
              "versionType": "original_commit_for_fix",
              "status": "unaffected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {},
  "references": [
    {
      "url": "https://git.kernel.org/stable/c/3556caa31a2bfbc22c11b812fd4ed8851c2d7bff",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/747b9bbbbdfdee51aee2456388f9b94b5086de4d",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/cd07aef510ac6a2873e01f9ddddc5492490b0067",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ]
}