← Back to CVE Explorer

CVE-2026-80655

Full vulnerability record from the local CVENow database.

Description

In the Linux kernel, the following vulnerability has been resolved: soc: xilinx: Fix race condition in event registration The zynqmp_power driver registers handlers for suspend and subsystem restart events using register_event(). However, the work structures (zynqmp_pm_init_suspend_work and zynqmp_pm_init_restart_work) used by these handlers were allocated and initialized after the registration call. This created a race window where, if the firmware triggered an event immediately after registration but before allocation, the callback (suspend_event_callback or subsystem_restart_event_callback) would dereference a NULL pointer in work_pending(), leading to a crash. Fix this by allocating and initializing the work structures before registering the events.

Severity
Not scored
CVSS score
Not available
Vulnerability status
Received
Source identifier
416baaa9-dc9f-4396-8d5f-8c081fb06d67
Published
2026-08-28 08:16:50.573000
Last modified
2026-10-21 13:19:57.423000
View original CVE JSON
{
  "id": "CVE-2026-80655",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
  "published": "2026-08-28T08:16:50.573",
  "lastModified": "2026-10-21T13:19:57.423",
  "vulnStatus": "Received",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsoc: xilinx: Fix race condition in event registration\n\nThe zynqmp_power driver registers handlers for suspend and subsystem\nrestart events using register_event(). However, the work structures\n(zynqmp_pm_init_suspend_work and zynqmp_pm_init_restart_work) used by\nthese handlers were allocated and initialized after the registration\ncall.\n\nThis created a race window where, if the firmware triggered an event\nimmediately after registration but before allocation, the callback\n(suspend_event_callback or subsystem_restart_event_callback) would\ndereference a NULL pointer in work_pending(), leading to a crash.\n\nFix this by allocating and initializing the work structures before\nregistering the events."
    }
  ],
  "affected": [
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "affectedData": [
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "unaffected",
          "programFiles": [
            "drivers/soc/xilinx/zynqmp_power.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "fcf544ac64397776a18246eba5a8ca72a47c4405",
              "lessThan": "07ea9081b8fefb99e2f427e0f0602a5e576cb120",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "fcf544ac64397776a18246eba5a8ca72a47c4405",
              "lessThan": "e124f7b170337563d78a7a6aa152c897d229bc39",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "fcf544ac64397776a18246eba5a8ca72a47c4405",
              "lessThan": "d349aa118ff5e4cab88424ce1b16e08edd70f8bb",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "fcf544ac64397776a18246eba5a8ca72a47c4405",
              "lessThan": "fb445935338405110baca8f541a2df3b4cb8d712",
              "versionType": "git",
              "status": "affected"
            }
          ]
        },
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "affected",
          "programFiles": [
            "drivers/soc/xilinx/zynqmp_power.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "6.11",
              "status": "affected"
            },
            {
              "version": "0",
              "lessThan": "6.11",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.12.114",
              "lessThanOrEqual": "6.12.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.18.57",
              "lessThanOrEqual": "6.18.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "7.1.5",
              "lessThanOrEqual": "7.1.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "7.2",
              "lessThanOrEqual": "*",
              "versionType": "original_commit_for_fix",
              "status": "unaffected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {},
  "references": [
    {
      "url": "https://git.kernel.org/stable/c/07ea9081b8fefb99e2f427e0f0602a5e576cb120",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/d349aa118ff5e4cab88424ce1b16e08edd70f8bb",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/e124f7b170337563d78a7a6aa152c897d229bc39",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/fb445935338405110baca8f541a2df3b4cb8d712",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ]
}