CVE-2023-54326 (GCVE-0-2023-54326)

Vulnerability from cvelistv5 – Published: 2025-12-30 12:37 – Updated: 2026-08-05 09:19
VLAI
Title
misc: pci_endpoint_test: Free IRQs before removing the device
Summary
In the Linux kernel, the following vulnerability has been resolved: misc: pci_endpoint_test: Free IRQs before removing the device In pci_endpoint_test_remove(), freeing the IRQs after removing the device creates a small race window for IRQs to be received with the test device memory already released, causing the IRQ handler to access invalid memory, resulting in an oops. Free the device IRQs before removing the device to avoid this issue.
Assigner
Impacted products
Vendor Product Version
Linux Linux Affected: e03327122e2c8e6ae4565ef5b3d3cbe4364546a1 , < fb7f8bdb886f2ebf35ee5edaf2bf5f02b063ddb7 (git)
Affected: e03327122e2c8e6ae4565ef5b3d3cbe4364546a1 , < dd2210379205fcd23a9d8869b0cef90e3770577c (git)
Affected: e03327122e2c8e6ae4565ef5b3d3cbe4364546a1 , < cdf9a7e2cdc7a5464e3cc6d0b715ba2b1d215521 (git)
Affected: e03327122e2c8e6ae4565ef5b3d3cbe4364546a1 , < 14bdee38e96c7d37ca15e7bea50411eee25fe315 (git)
Affected: e03327122e2c8e6ae4565ef5b3d3cbe4364546a1 , < c2dba13bc0c62b79a3cbe4bfe5faa32231bf9b55 (git)
Affected: e03327122e2c8e6ae4565ef5b3d3cbe4364546a1 , < 38d12bcf4e2ce3d285eb29644a79a54f42040fab (git)
Affected: e03327122e2c8e6ae4565ef5b3d3cbe4364546a1 , < f61b7634a3249d12b9daa36ffbdb9965b6f24c6c (git)
Create a notification for this product.
Linux Linux Affected: 4.19
Unaffected: 0 , < 4.19 (semver)
Unaffected: 4.19.291 , ≤ 4.19.* (semver)
Unaffected: 5.4.251 , ≤ 5.4.* (semver)
Unaffected: 5.10.188 , ≤ 5.10.* (semver)
Unaffected: 5.15.121 , ≤ 5.15.* (semver)
Unaffected: 6.1.40 , ≤ 6.1.* (semver)
Unaffected: 6.4.5 , ≤ 6.4.* (semver)
Unaffected: 6.5 , ≤ * (original_commit_for_fix)
Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/misc/pci_endpoint_test.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "fb7f8bdb886f2ebf35ee5edaf2bf5f02b063ddb7",
              "status": "affected",
              "version": "e03327122e2c8e6ae4565ef5b3d3cbe4364546a1",
              "versionType": "git"
            },
            {
              "lessThan": "dd2210379205fcd23a9d8869b0cef90e3770577c",
              "status": "affected",
              "version": "e03327122e2c8e6ae4565ef5b3d3cbe4364546a1",
              "versionType": "git"
            },
            {
              "lessThan": "cdf9a7e2cdc7a5464e3cc6d0b715ba2b1d215521",
              "status": "affected",
              "version": "e03327122e2c8e6ae4565ef5b3d3cbe4364546a1",
              "versionType": "git"
            },
            {
              "lessThan": "14bdee38e96c7d37ca15e7bea50411eee25fe315",
              "status": "affected",
              "version": "e03327122e2c8e6ae4565ef5b3d3cbe4364546a1",
              "versionType": "git"
            },
            {
              "lessThan": "c2dba13bc0c62b79a3cbe4bfe5faa32231bf9b55",
              "status": "affected",
              "version": "e03327122e2c8e6ae4565ef5b3d3cbe4364546a1",
              "versionType": "git"
            },
            {
              "lessThan": "38d12bcf4e2ce3d285eb29644a79a54f42040fab",
              "status": "affected",
              "version": "e03327122e2c8e6ae4565ef5b3d3cbe4364546a1",
              "versionType": "git"
            },
            {
              "lessThan": "f61b7634a3249d12b9daa36ffbdb9965b6f24c6c",
              "status": "affected",
              "version": "e03327122e2c8e6ae4565ef5b3d3cbe4364546a1",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/misc/pci_endpoint_test.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "4.19"
            },
            {
              "lessThan": "4.19",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "4.19.*",
              "status": "unaffected",
              "version": "4.19.291",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.4.*",
              "status": "unaffected",
              "version": "5.4.251",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.10.*",
              "status": "unaffected",
              "version": "5.10.188",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.121",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.40",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.4.*",
              "status": "unaffected",
              "version": "6.4.5",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.5",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "4.19.291",
                  "versionStartIncluding": "4.19",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.4.251",
                  "versionStartIncluding": "4.19",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.10.188",
                  "versionStartIncluding": "4.19",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.121",
                  "versionStartIncluding": "4.19",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.40",
                  "versionStartIncluding": "4.19",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.4.5",
                  "versionStartIncluding": "4.19",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.5",
                  "versionStartIncluding": "4.19",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nmisc: pci_endpoint_test: Free IRQs before removing the device\n\nIn pci_endpoint_test_remove(), freeing the IRQs after removing the device\ncreates a small race window for IRQs to be received with the test device\nmemory already released, causing the IRQ handler to access invalid memory,\nresulting in an oops.\n\nFree the device IRQs before removing the device to avoid this issue."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.8,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - The vulnerable window is opened by a local driver-removal event (sysfs unbind/rmmod/hot-unplug) and the interrupt storm that hits it is driven through local interfaces \u2014 the `/dev/pci-endpoint-test.N` ioctls that command the endpoint to raise MSI/MSI-X/legacy IRQs. There is no network-reachable path to this host-side test driver.\nAC:L - The attacker controls the interrupt side of the race directly and continuously (looping `PCITEST_MSI`/`PCITEST_LEGACY_IRQ`, or free-running MSIs from the attached endpoint), so the handler is guaranteed to be in flight whenever teardown runs; `IRQF_SHARED` legacy lines widen it further, and the race can be retried on every unbind cycle.\nPR:L - No capability check exists anywhere in `pci_endpoint_test_ioctl()` or the IRQ path \u2014 an unprivileged local context with the device node open sustains the interrupt stream that lands in the window, and the removal side is a routine hot-unplug/unbind event rather than a privilege the attacker must hold.\nUI:N - Nothing requires a victim to open a file, mount a filesystem, or interact with attacker-supplied content; the race is won purely by the attacker\u0027s own interrupt generation against a system/administrative removal event.\nS:U - The dangling iomem and heap accesses stay entirely within the kernel\u0027s own security authority \u2014 no hypervisor, IOMMU, or sandbox boundary is crossed.\nC:H - `kfree(test-\u003ename)` leaves `irqaction-\u003ename` dangling while the IRQ is still registered, so freed kernel heap contents are rendered to userspace via `/proc/interrupts`, and the handler\u0027s `readl()` through the unmapped `test-\u003ebase` can read a recycled vmalloc/ioremap mapping \u2014 a use-after-free read primitive.\nI:H - The handler performs `writel(test, PCI_ENDPOINT_TEST_STATUS, reg)` through the already-`pci_iounmap()`\u0027d pointer, a stale-pointer write into a virtual range that a concurrent `ioremap()`/`vmalloc()` may already own; per use-after-free treatment this is exploitable for memory corruption and control-flow influence.\nA:H - The commit states the outcome explicitly \u2014 the IRQ handler touches released device memory and the kernel oopses; a fault taken in hard-IRQ context during device teardown is an immediate crash."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T09:19:17.990Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/fb7f8bdb886f2ebf35ee5edaf2bf5f02b063ddb7"
        },
        {
          "url": "https://git.kernel.org/stable/c/dd2210379205fcd23a9d8869b0cef90e3770577c"
        },
        {
          "url": "https://git.kernel.org/stable/c/cdf9a7e2cdc7a5464e3cc6d0b715ba2b1d215521"
        },
        {
          "url": "https://git.kernel.org/stable/c/14bdee38e96c7d37ca15e7bea50411eee25fe315"
        },
        {
          "url": "https://git.kernel.org/stable/c/c2dba13bc0c62b79a3cbe4bfe5faa32231bf9b55"
        },
        {
          "url": "https://git.kernel.org/stable/c/38d12bcf4e2ce3d285eb29644a79a54f42040fab"
        },
        {
          "url": "https://git.kernel.org/stable/c/f61b7634a3249d12b9daa36ffbdb9965b6f24c6c"
        }
      ],
      "title": "misc: pci_endpoint_test: Free IRQs before removing the device",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2023-54326",
    "datePublished": "2025-12-30T12:37:09.698Z",
    "dateReserved": "2025-12-30T12:35:56.209Z",
    "dateUpdated": "2026-08-05T09:19:17.990Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2023-54326",
      "date": "2026-08-09",
      "epss": "0.00125",
      "percentile": "0.02581"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2023-54326\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2025-12-30T13:16:21.947\",\"lastModified\":\"2026-08-04T11:16:40.483\",\"vulnStatus\":\"Deferred\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nmisc: pci_endpoint_test: Free IRQs before removing the device\\n\\nIn pci_endpoint_test_remove(), freeing the IRQs after removing the device\\ncreates a small race window for IRQs to be received with the test device\\nmemory already released, causing the IRQ handler to access invalid memory,\\nresulting in an oops.\\n\\nFree the device IRQs before removing the device to avoid this issue.\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:\\n\\nvarios: pci_endpoint_test: Liberar IRQs antes de eliminar el dispositivo\\n\\nEn pci_endpoint_test_remove(), liberar las IRQs despu\u00e9s de eliminar el dispositivo crea una peque\u00f1a ventana de carrera para que se reciban IRQs con la memoria del dispositivo de prueba ya liberada, lo que provoca que el controlador de IRQ acceda a memoria no v\u00e1lida, resultando en un oops.\\n\\nLiberar las IRQs del dispositivo antes de eliminar el dispositivo para evitar este problema.\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"drivers/misc/pci_endpoint_test.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"e03327122e2c8e6ae4565ef5b3d3cbe4364546a1\",\"lessThan\":\"fb7f8bdb886f2ebf35ee5edaf2bf5f02b063ddb7\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"e03327122e2c8e6ae4565ef5b3d3cbe4364546a1\",\"lessThan\":\"dd2210379205fcd23a9d8869b0cef90e3770577c\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"e03327122e2c8e6ae4565ef5b3d3cbe4364546a1\",\"lessThan\":\"cdf9a7e2cdc7a5464e3cc6d0b715ba2b1d215521\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"e03327122e2c8e6ae4565ef5b3d3cbe4364546a1\",\"lessThan\":\"14bdee38e96c7d37ca15e7bea50411eee25fe315\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"e03327122e2c8e6ae4565ef5b3d3cbe4364546a1\",\"lessThan\":\"c2dba13bc0c62b79a3cbe4bfe5faa32231bf9b55\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"e03327122e2c8e6ae4565ef5b3d3cbe4364546a1\",\"lessThan\":\"38d12bcf4e2ce3d285eb29644a79a54f42040fab\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"e03327122e2c8e6ae4565ef5b3d3cbe4364546a1\",\"lessThan\":\"f61b7634a3249d12b9daa36ffbdb9965b6f24c6c\",\"versionType\":\"git\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"drivers/misc/pci_endpoint_test.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"4.19\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"4.19\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"4.19.291\",\"lessThanOrEqual\":\"4.19.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"5.4.251\",\"lessThanOrEqual\":\"5.4.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"5.10.188\",\"lessThanOrEqual\":\"5.10.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"5.15.121\",\"lessThanOrEqual\":\"5.15.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.1.40\",\"lessThanOrEqual\":\"6.1.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.4.5\",\"lessThanOrEqual\":\"6.4.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.5\",\"lessThanOrEqual\":\"*\",\"versionType\":\"original_commit_for_fix\",\"status\":\"unaffected\"}]}]}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H\",\"baseScore\":7.8,\"baseSeverity\":\"HIGH\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"HIGH\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.8,\"impactScore\":5.9}]},\"references\":[{\"url\":\"https://git.kernel.org/stable/c/14bdee38e96c7d37ca15e7bea50411eee25fe315\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/38d12bcf4e2ce3d285eb29644a79a54f42040fab\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/c2dba13bc0c62b79a3cbe4bfe5faa32231bf9b55\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/cdf9a7e2cdc7a5464e3cc6d0b715ba2b1d215521\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/dd2210379205fcd23a9d8869b0cef90e3770577c\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/f61b7634a3249d12b9daa36ffbdb9965b6f24c6c\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/fb7f8bdb886f2ebf35ee5edaf2bf5f02b063ddb7\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}]}}",
    "redhat_vex": {
      "aggregate_severity": "Low",
      "current_release_date": "2026-08-04T22:51:45+00:00",
      "cve": "CVE-2023-54326",
      "id": "CVE-2023-54326",
      "initial_release_date": "2023-01-01T00:00:00+00:00",
      "product_status:fixed": "279",
      "product_status:known_affected": "22",
      "product_status:known_not_affected": "166",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: misc: pci_endpoint_test: Free IRQs before removing the device",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2023/cve-2023-54326.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "moderate",
      "current_release_date": "2026-07-25T02:02:46Z",
      "cve": "CVE-2023-54326",
      "id": "CVE-2023-54326",
      "initial_release_date": "2025-12-31T00:25:45Z",
      "product_status:known_affected": "409",
      "product_status:known_not_affected": "176",
      "product_status:recommended": "455",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2023-54326",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2023-54326.json",
      "version": "36"
    }
  }
}



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…

Loading…