s2
--:--:--UTC

Searching APEX

Starting…

  1. Searching Threats, IOCs & Threat Intelligence locally
  2. Querying external providers
  3. Asking AI Forensic Validator
  4. Creating new entry from validated hit

0s elapsed

CVE-2026-45904

📛 CVE Title

powerpc/eeh: fix recursive pci_lock_rescan_remove locking in EEH event handling

Description

In the Linux kernel, the following vulnerability has been resolved: powerpc/eeh: fix recursive pci_lock_rescan_remove locking in EEH event handling The recent commit 1010b4c012b0 ("powerpc/eeh: Make EEH driver device hotplug safe") restructured the EEH driver to improve synchronization with the PCI hotplug layer. However, it inadvertently moved pci_lock_rescan_remove() outside its intended scope in eeh_handle_normal_event(), leading to broken PCI error reporting and improper EEH event triggering. Specifically, eeh_handle_normal_event() acquired pci_lock_rescan_remove() before calling eeh_pe_bus_get(), but eeh_pe_bus_get() itself attempts to acquire the same lock internally, causing nested locking and disrupting normal EEH event handling paths. This patch adds a boolean parameter do_lock to _eeh_pe_bus_get(), with two public wrappers: eeh_pe_bus_get() with locking enabled. eeh_pe_bus_get_nolock() that skips locking. Callers that already hold pci_lock_rescan_remove() now use eeh_pe_bus_get_nolock() to avoid recursive lock acquisition. Additionally, pci_lock_rescan_remove() calls are restored to the correct position—after eeh_pe_bus_get() and immediately before iterating affected PEs and devices. This ensures EEH-triggered PCI removes occur under proper bus rescan locking without recursive lock contention. The eeh_pe_loc_get() function has been split into two functions: eeh_pe_loc_get(struct eeh_pe *pe) which retrieves the loc for given PE. eeh_pe_loc_get_bus(struct pci_bus *bus) which retrieves the location code for given bus. This resolves lockdep warnings such as: <snip> [ 84.964298] [ T928] ============================================ [ 84.964304] [ T928] WARNING: possible recursive locking detected [ 84.964311] [ T928] 6.18.0-rc3 #51 Not tainted [ 84.964315] [ T928] -------------------------------------------- [ 84.964320] [ T928] eehd/928 is trying to acquire lock: [ 84.964324] [ T928] c000000003b29d58 (pci_rescan_remove_lock){+.+.}-{3:3}, at: pci_lock_rescan_remove+0x28/0x40 [ 84.964342] [ T928] but task is already holding lock: [ 84.964347] [ T928] c000000003b29d58 (pci_rescan_remove_lock){+.+.}-{3:3}, at: pci_lock_rescan_remove+0x28/0x40 [ 84.964357] [ T928] other info that might help us debug this: [ 84.964363] [ T928] Possible unsafe locking scenario: [ 84.964367] [ T928] CPU0 [ 84.964370] [ T928] ---- [ 84.964373] [ T928] lock(pci_rescan_remove_lock); [ 84.964378] [ T928] lock(pci_rescan_remove_lock); [ 84.964383] [ T928] *** DEADLOCK *** [ 84.964388] [ T928] May be due to missing lock nesting notation [ 84.964393] [ T928] 1 lock held by eehd/928: [ 84.964397] [ T928] #0: c000000003b29d58 (pci_rescan_remove_lock){+.+.}-{3:3}, at: pci_lock_rescan_remove+0x28/0x40 [ 84.964408] [ T928] stack backtrace: [ 84.964414] [ T928] CPU: 2 UID: 0 PID: 928 Comm: eehd Not tainted 6.18.0-rc3 #51 VOLUNTARY [ 84.964417] [ T928] Hardware name: IBM,9080-HEX POWER10 (architected) 0x800200 0xf000006 of:IBM,FW1060.00 (NH1060_022) hv:phyp pSeries [ 84.964419] [ T928] Call Trace: [ 84.964420] [ T928] [c0000011a7157990] [c000000001705de4] dump_stack_lvl+0xc8/0x130 (unreliable) [ 84.964424] [ T928] [c0000011a71579d0] [c0000000002f66e0] print_deadlock_bug+0x430/0x440 [ 84.964428] [ T928] [c0000011a7157a70] [c0000000002fd0c0] __lock_acquire+0x1530/0x2d80 [ 84.964431] [ T928] [c0000011a7157ba0] [c0000000002fea54] lock_acquire+0x144/0x410 [ 84.964433] [ T928] [c0000011a7157cb0] [c0000011a7157cb0] __mutex_lock+0xf4/0x1050 [ 84.964436] [ T928] [c0000011a7157e00] [c000000000de21d8] pci_lock_rescan_remove+0x28/0x40 [ 84.964439] [ T928] [c0000011a7157e20] [c00000000004ed98] eeh_pe_bus_get+0x48/0xc0 [ 84.964442] [ T928] [c0000011a7157e50] [c00000 ---truncated---

Overview

State
PUBLISHED
Assigner (CNA)
Linux
CVSS severity
high
CVSS score
CVSS 8.4 / 10 8.4 8.4 / 10
CVSS vector
AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Effective score
8.4 / 10 HIGH source: CNA overview
CWE(s)
Reserved
2026-05-13
Published
2026-05-27 12:17 UTC
Last updated
2026-05-27 12:17 UTC
Source
https://raw.githubusercontent.com/CVEProject/cvelistV5/main/cves/2026/45xxx/CVE-2026-45904.json
Linked Threat
CVE-2026-45904 — CVE-2026-45904

NVD triage scoring NVD CVE 2.0

Layer NVD adds on top of the CNA's CVE record — published / last-modified timestamps, exploitability / impact subscores, and the FIRST.org EPSS probability that this CVE will be exploited in the wild in the next 30 days.

NVD published
2026-05-27 14:17:04 UTC
NVD last modified
2026-06-24 16:28:46 UTC
NVD CVSS v3.1
CVSS 5.5 / 10 5.5 5.5 / 10 MEDIUM source: nvd@nist.gov
NVD CVSS vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Exploitability subscore
1.8 / 10
Impact subscore
3.6 / 10
EPSS score
0.0016 (probability of exploitation in next 30 days)
EPSS percentile
5.17% vs all CVEs — higher = more likely to be exploited, as of 2026-07-26

NVD-assigned CWE(s): CWE-674 (differs from the CNA list above)

NVD / KEV / EPSS data refreshed 2026-07-27 11:42 UTC. Re-run the 🛰 Backfill from NVD button above to refresh.

European Union Vulnerability Database ENISA EUVD

ENISA's official EU repository for curated vulnerability intelligence. Carries a separate identifier (EUVD-YYYY-NNNN) and frequently exposes an earlier-published description + CVSS than NVD does.

EUVD ID
EUVD-2026-32370
Assigner
Linux
Published
May 27, 2026, 12:17:12 PM
Updated
May 27, 2026, 12:17:12 PM
EUVD base score
0.0 / 10
EUVD-reported EPSS
0.1600
Vendors
Linux
Products
Linux (6.16.1 <6.17)
Linux (patch: 5.15.202)
Linux (502f08831a9afb72dc98a56ae6504da43e93b250 <89810e2d80281d42f855fac813786758ee16e323)
Linux (patch: 7.0)
Linux (5.15.190 <5.15.202)
Linux (f56e004b781719d8fdf6c9619b15caf2579bc1f2 <788dd28fd49610d6047cbb15dbf1186afffdfbaf)
Linux (patch: 6.1.165)
Linux (6.17)
Linux (patch: 5.10.252)
Linux (d42bbd8f30ac38b1ce54715bf08ec3dac18d6b25)
Linux (6.1.148 <6.1.165)
Linux (6.12.42 <6.12.75)
Linux (6.15.10 <6.16)
Linux (patch: 6.12.75)
Linux (1010b4c012b0d78dfb9d3132b49aa2ef024a07a7 <b85ee287bfe52c6b2d9b41758b5e0d08679d5b39)
Linux (patch: 0)
Linux (d2c60a8a387e9fcc28447ef36c03f8e49fd052a6 <f8b16d5764ee1e78c1ef333017ad383ffe76fcdc)
Linux (patch: 6.19.4)
Linux (1010b4c012b0d78dfb9d3132b49aa2ef024a07a7 <6e6561231c6cfc32c5631aeecc0928ff2b14265c)
Linux (patch: 6.18.14)
Linux (59c6d3d81d42bf543c90597b4f38c53d6874c5a1 <f49faa4a64f8ac0e38983e606075b25dfcfc9ad4)
Linux (19d5036e7ad766cf212aebec23b9f1d7924a62bc)
Linux (6.6.102 <6.6.128)
Linux (a426e8a6ae161f51888585b065db0f8f93ab2e16 <87a1f93986aa1500b85aeff16b0b71c29ea116ea)
Linux (5.10.241 <5.10.252)
Linux (1010b4c012b0d78dfb9d3132b49aa2ef024a07a7 <815a8d2feb5615ae7f0b5befd206af0b0160614c)
Linux (patch: 6.6.128)
Aliases
GHSA-5f94-f58j-vgqv

ENISA description: In the Linux kernel, the following vulnerability has been resolved: powerpc/eeh: fix recursive pci_lock_rescan_remove locking in EEH event handling The recent commit 1010b4c012b0 ("powerpc/eeh: Make EEH driver device hotplug safe") restructured the EEH driver to improve synchronization with the PCI hotplug layer. However, it inadvertently moved pci_lock_rescan_remove() outside its intended scope in eeh_handle_normal_event(), leading to broken PCI error reporting and improper EEH event triggering. Specifically, eeh_handle_normal_event() acquired pci_lock_rescan_remove() before calling eeh_pe_bus_get(), but eeh_pe_bus_get() itself attempts to acquire the same lock internally, causing nested locking and disrupting normal EEH event handling paths. This patch adds a boolean parameter do_lock to _eeh_pe_bus_get(), with two public wrappers: eeh_pe_bus_get() with locking enabled. eeh_pe_bus_get_nolock() that skips locking. Callers that already hold pci_lock_rescan_remove() now use eeh_pe_bus_get_nolock() to avoid recursive lock acquisition. Additionally, pci_lock_rescan_remove() calls are restored to the correct position—after eeh_pe_bus_get() and immediately before iterating affected PEs and devices. This ensures EEH-triggered PCI removes occur under proper bus rescan locking without recursive lock contention. The eeh_pe_loc_get() function has been split into two functions: eeh_pe_loc_get(struct eeh_pe *pe) which retrieves the loc for given PE. eeh_pe_loc_get_bus(struct pci_bus *bus) which retrieves the location code for given bus. This resolves lockdep warnings such as: <snip> [ 84.964298] [ T928] ============================================ [ 84.964304] [ T928] WARNING: possible recursive locking detected [ 84.964311] [ T928] 6.18.0-rc3 #51 Not tainted [ 84.964315] [ T928] -------------------------------------------- [ 84.964320] [ T928] eehd/928 is trying to acquire lock: [ 84.964324] [ T928] c000000003b29d58 (pci_rescan_remove_lock){+.+.}-{3:3}, at: pci_lock_rescan_remove+0x28/0x40 [ 84.964342] [ T928] but task is already holding lock: [ 84.964347] [ T928] c000000003b29d58 (pci_rescan_remove_lock){+.+.}-{3:3}, at: pci_lock_rescan_remove+0x28/0x40 [ 84.964357] [ T928] other info that might help us debug this: [ 84.964363] [ T928] Possible unsafe locking scenario: [ 84.964367] [ T928] CPU0 [ 84.964370] [ T928] ---- [ 84.964373] [ T928] lock(pci_rescan_remove_lock); [ 84.964378] [ T928] lock(pci_rescan_remove_lock); [ 84.964383] [ T928] *** DEADLOCK *** [ 84.964388] [ T928] May be due to missing lock nesting notation [ 84.964393] [ T928] 1 lock held by eehd/928: [ 84.964397] [ T928] #0: c000000003b29d58 (pci_rescan_remove_lock){+.+.}-{3:3}, at: pci_lock_rescan_remove+0x28/0x40 [ 84.964408] [ T928] stack backtrace: [ 84.964414] [ T928] CPU: 2 UID: 0 PID: 928 Comm: eehd Not tainted 6.18.0-rc3 #51 VOLUNTARY [ 84.964417] [ T928] Hardware name: IBM,9080-HEX POWER10 (architected) 0x800200 0xf000006 of:IBM,FW1060.00 (NH1060_022) hv:phyp pSeries [ 84.964419] [ T928] Call Trace: [ 84.964420] [ T928] [c0000011a7157990] [c000000001705de4] dump_stack_lvl+0xc8/0x130 (unreliable) [ 84.964424] [ T928] [c0000011a71579d0] [c0000000002f66e0] print_deadlock_bug+0x430/0x440 [ 84.964428] [ T928] [c0000011a7157a70] [c0000000002fd0c0] __lock_acquire+0x1530/0x2d80 [ 84.964431] [ T928] [c0000011a7157ba0] [c0000000002fea54] lock_acquire+0x144/0x410 [ 84.964433] [ T928] [c0000011a7157cb0] [c0000011a7157cb0] __mutex_lock+0xf4/0x1050 [ 84.964436] [ T928] [c0000011a7157e00] [c000000000de21d8] pci_lock_rescan_remove+0x28/0x40 [ 84.964439] [ T928] [c0000011a7157e20] [c00000000004ed98] eeh_pe_bus_get+0x48/0xc0 [ 84.964442] [ T928] [c0000011a7157e50] [c00000 ---truncated---

EUVD references (8)

Affected products (2)

VendorProductVersionsPlatforms
Linux Linux 502f08831a9afb72dc98a56ae6504da43e93b250 (affected), f56e004b781719d8fdf6c9619b15caf2579bc1f2 (affected), 59c6d3d81d42bf543c90597b4f38c53d6874c5a1 (affected), a426e8a6ae161f51888585b065db0f8f93ab2e16 (affected), d2c60a8a387e9fcc28447ef36c03f8e49fd052a6 (affected), 1010b4c012b0d78dfb9d3132b49aa2ef024a07a7 (affected), 1010b4c012b0d78dfb9d3132b49aa2ef024a07a7 (affected), 1010b4c012b0d78dfb9d3132b49aa2ef024a07a7 (affected), d42bbd8f30ac38b1ce54715bf08ec3dac18d6b25 (affected), 19d5036e7ad766cf212aebec23b9f1d7924a62bc (affected), 5.10.241 (affected), 5.15.190 (affected), 6.1.148 (affected), 6.6.102 (affected), 6.12.42 (affected), 6.15.10 (affected), 6.16.1 (affected)
Linux Linux 6.17 (affected), 0 (unaffected), 5.10.252 (unaffected), 5.15.202 (unaffected), 6.1.165 (unaffected), 6.6.128 (unaffected), 6.12.75 (unaffected), 6.18.14 (unaffected), 6.19.4 (unaffected), 7.0 (unaffected)

Affected products — CPE 2.3 (1) NVD

NVD's normalized CPE 2.3 matchers, used by vendor tools (vulnerability scanners, asset managers) for automated detection. Compare with the CNA's free-text "Affected products" section above.

  • cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*

Vendor references (8)

References embedded in the original CVE record by the assigning CNA.

Web references (11)

DuckDuckGo results ranked by threat-intel / vendor advisory domains. Generated by the 🔎 Find references (web) button above — same flow as the Remediations search.

NVD-tagged references (8)

Reference list NVD curates from the CNA record, vendor advisories, and third-party reports. The tag chips below are NVD's analyst-assigned categories.

Remediations (20)

Remediations are stored against the linked Threat row; the list below is deduplicated across both pages.

  • web:blog.gridinsoft.com

    Microsoft has confirmed exploitation of two Microsoft Defender vulnerabilities fixed in the May 2026 security update cycle. CVE - 2026 -41091 is an elevation-of-privilege flaw in the Microsoft Malware Protection Engine, while CVE - 2026 -45498 is a denial-of-service flaw in the Microsoft Defender Antimalware Platform . The first bug matters more for incident response because a local authorized ...

    2026-06-04 00:15 UTC
  • web:blogs.oracle.com

    For more information about the Critical Patch Update program, see the security vulnerability remediation practices page located on the Oracle Trust Center.

    2026-06-04 00:15 UTC
  • web:msrc.microsoft.com

    Security Update Guide - Microsoft Security Response Center

    2026-06-04 00:15 UTC
  • web:op-c.net

    CISA added two actively exploited Microsoft Defender vulnerabilities, CVE - 2026 -41091 and CVE - 2026 -45498, to its KEV catalog. Learn the risks and recommended actions.

    2026-06-04 00:15 UTC
  • web:portal.msrc.microsoft.com

    The Security Update Guide provides information on the latest Microsoft security updates, helping users understand and address potential vulnerabilities effectively.

    2026-06-04 00:15 UTC
  • web:support.servicenow.com

    Overview The advisories below document publicly disclosed Common Vulnerabilities and Exposures ( CVEs ) in the Now Platform by ServiceNow. Because ServiceNow uses various methods to communicate vulnerability information, patches, and other fixes, customers should review family, security patch , and hotfix release notes, which are available at https://docs.servicenow.com, for a complete list of ...

    2026-06-04 00:15 UTC
  • web:www.crowdstrike.com

    Microsoft's April 2026 Patch Tuesday addresses 164 CVEs , featuring 8 Critical vulnerabilities, one exploited zero-day, and one disclosed zero-day.

    2026-06-04 00:15 UTC
  • web:www.malwarebytes.com

    The KEV catalog tracks vulnerabilities known to be exploited in the wild and sets patch deadlines for Federal Civilian Executive Branch (FCEB) agencies. Five of the added vulnerabilities are quite old by vulnerability standards. Patches were released in 2008, 2009, and 2010. But the Microsoft Defender vulnerabilities are from this year. Those ...

    2026-06-04 00:15 UTC
  • web:www.oracle.com

    Oracle Critical Patch Update Advisory - April 2026 Description A Critical Patch Update is a collection of patches for multiple security vulnerabilities. These patches address vulnerabilities in Oracle code and in third party components included in Oracle products. These patches are usually cumulative, but each advisory describes only the security patches added since the previous Critical Patch ...

    2026-06-04 00:15 UTC
  • web:zecurit.com

    Get the complete breakdown of Microsoft's June 2026 Patch Tuesday. We analyze the latest security updates and all critical CVEs .

    2026-06-04 00:15 UTC
  • web:blog.qualys.com

    RedSun is a zero-day LPE in Microsoft Defender with no patch available. Learn how to detect and mitigate it instantly using Qualys VMDR and TruRisk™ Eliminate.

    2026-06-19 02:27 UTC
  • web:msrc.microsoft.com

    Security Update Guide - Microsoft Security Response Center

    2026-06-19 02:27 UTC
  • web:officialfixdessertchocolatier.com

    Indulge in Dubai's viral chocolate bars with FIX Dessert Chocolatier. Shop our hero collection featuring Baklawa, Knafeh, Biscoff, and more. Fast delivery in Dubai & Abu Dhabi. Order now!

    2026-06-19 02:27 UTC
  • web:patchnashville.com

    Patch was born out of a love of children's fashion and classic yet modern gifting. The goal was to create a timeless yet modern boutique with a playful touch featuring children's clothing, gifts, & accessories. My hope is that you always find what you came for and feel as inspired by our collections as we are.

    2026-06-19 02:27 UTC
  • web:www.golfthepatch.com

    Now open, The Patch features a redesigned 18-hole course, led by golf course architects Tom Fazio and Beau Welling, and a new 9-hole short course, The Loop at The Patch , designed by Tiger Woods and TGR Design. Welcome to Augusta's best-in-class public golf experience.

    2026-06-19 02:27 UTC
  • web:www.linkedin.com

    Microsoft has confirmed that it is developing a security update to address a newly disclosed zero-day vulnerability in Microsoft Defender, following the public release of exploit code that ...

    2026-06-19 02:27 UTC
  • web:www.malwarebytes.com

    Microsoft says it's working on a fix for an unpatched Defender vulnerability that can give attackers the highest level of access on Windows.

    2026-06-19 02:27 UTC
  • web:www.onixs.biz

    FIX 4.2 - FIX Dictionary - Onix Solutions Messages by MsgType | Messages by Name | Fields by Tag | Fields by Name | Home FIX 4.2

    2026-06-19 02:27 UTC
  • web:www.onixs.biz

    Easy to use online FIX messages and tag usage reference dictionary.

    2026-06-19 02:27 UTC
  • web:www.patchplants.com

    Patch makes plants easy. We are loved by over 700k happy customers. Indoor & outdoor plants and pots safely delivered across the UK from top growers.

    2026-06-19 02:27 UTC

AI Forensic Analysis

Only Available for Registered Users. Sign in to view.

Raw JSON

The full cvelistV5 record. Download as CVE-2026-45904.json.

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "arch/powerpc/include/asm/eeh.h",
            "arch/powerpc/kernel/eeh_driver.c",
            "arch/powerpc/kernel/eeh_pe.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "89810e2d80281d42f855fac813786758ee16e323",
              "status": "affected",
              "version": "502f08831a9afb72dc98a56ae6504da43e93b250",
              "versionType": "git"
            },
            {
              "lessThan": "788dd28fd49610d6047cbb15dbf1186afffdfbaf",
              "status": "affected",
              "version": "f56e004b781719d8fdf6c9619b15caf2579bc1f2",
              "versionType": "git"
            },
            {
              "lessThan": "f49faa4a64f8ac0e38983e606075b25dfcfc9ad4",
              "status": "affected",
              "version": "59c6d3d81d42bf543c90597b4f38c53d6874c5a1",
              "versionType": "git"
            },
            {
              "lessThan": "87a1f93986aa1500b85aeff16b0b71c29ea116ea",
              "status": "affected",
              "version": "a426e8a6ae161f51888585b065db0f8f93ab2e16",
              "versionType": "git"
            },
            {
              "lessThan": "f8b16d5764ee1e78c1ef333017ad383ffe76fcdc",
              "status": "affected",
              "version": "d2c60a8a387e9fcc28447ef36c03f8e49fd052a6",
              "versionType": "git"
            },
            {
              "lessThan": "6e6561231c6cfc32c5631aeecc0928ff2b14265c",
              "status": "affected",
              "version": "1010b4c012b0d78dfb9d3132b49aa2ef024a07a7",
              "versionType": "git"
            },
            {
              "lessThan": "b85ee287bfe52c6b2d9b41758b5e0d08679d5b39",
              "status": "affected",
              "version": "1010b4c012b0d78dfb9d3132b49aa2ef024a07a7",
              "versionType": "git"
            },
            {
              "lessThan": "815a8d2feb5615ae7f0b5befd206af0b0160614c",
              "status": "affected",
              "version": "1010b4c012b0d78dfb9d3132b49aa2ef024a07a7",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "d42bbd8f30ac38b1ce54715bf08ec3dac18d6b25",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "19d5036e7ad766cf212aebec23b9f1d7924a62bc",
              "versionType": "git"
            },
            {
              "lessThan": "5.10.252",
              "status": "affected",
              "version": "5.10.241",
              "versionType": "semver"
            },
            {
              "lessThan": "5.15.202",
              "status": "affected",
              "version": "5.15.190",
              "versionType": "semver"
            },
            {
              "lessThan": "6.1.165",
              "status": "affected",
              "version": "6.1.148",
              "versionType": "semver"
            },
            {
              "lessThan": "6.6.128",
              "status": "affected",
              "version": "6.6.102",
              "versionType": "semver"
            },
            {
              "lessThan": "6.12.75",
              "status": "affected",
              "version": "6.12.42",
              "versionType": "semver"
            },
            {
              "lessThan": "6.16",
              "status": "affected",
              "version": "6.15.10",
              "versionType": "semver"
            },
            {
              "lessThan": "6.17",
              "status": "affected",
              "version": "6.16.1",
              "versionType": "semver"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "arch/powerpc/include/asm/eeh.h",
            "arch/powerpc/kernel/eeh_driver.c",
            "arch/powerpc/kernel/eeh_pe.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.17"
            },
            {
              "lessThan": "6.17",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.10.*",
              "status": "unaffected",
              "version": "5.10.252",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.202",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.165",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.128",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.75",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.14",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.19.*",
              "status": "unaffected",
              "version": "6.19.4",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.0",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.10.252",
                  "versionStartIncluding": "5.10.241",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.202",
                  "versionStartIncluding": "5.15.190",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.165",
                  "versionStartIncluding": "6.1.148",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.128",
                  "versionStartIncluding": "6.6.102",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.75",
                  "versionStartIncluding": "6.12.42",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.14",
                  "versionStartIncluding": "6.17",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.19.4",
                  "versionStartIncluding": "6.17",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.0",
                  "versionStartIncluding": "6.17",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "6.15.10",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "6.16.1",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\npowerpc/eeh: fix recursive pci_lock_rescan_remove locking in EEH event handling\n\nThe recent commit 1010b4c012b0 (\"powerpc/eeh: Make EEH driver device\nhotplug safe\") restructured the EEH driver to improve synchronization\nwith the PCI hotplug layer.\n\nHowever, it inadvertently moved pci_lock_rescan_remove() outside its\nintended scope in eeh_handle_normal_event(), leading to broken PCI\nerror reporting and improper EEH event triggering. Specifically,\neeh_handle_normal_event() acquired pci_lock_rescan_remove() before\ncalling eeh_pe_bus_get(), but eeh_pe_bus_get() itself attempts to\nacquire the same lock internally, causing nested locking and disrupting\nnormal EEH event handling paths.\n\nThis patch adds a boolean parameter do_lock to _eeh_pe_bus_get(),\nwith two public wrappers:\n    eeh_pe_bus_get() with locking enabled.\n    eeh_pe_bus_get_nolock() that skips locking.\n\nCallers that already hold pci_lock_rescan_remove() now use\neeh_pe_bus_get_nolock() to avoid recursive lock acquisition.\n\nAdditionally, pci_lock_rescan_remove() calls are restored to the correct\nposition\u2014after eeh_pe_bus_get() and immediately before iterating affected\nPEs and devices. This ensures EEH-triggered PCI removes occur under proper\nbus rescan locking without recursive lock contention.\n\nThe eeh_pe_loc_get() function has been split into two functions:\n    eeh_pe_loc_get(struct eeh_pe *pe) which retrieves the loc for given PE.\n    eeh_pe_loc_get_bus(struct pci_bus *bus) which retrieves the location\n    code for given bus.\n\nThis resolves lockdep warnings such as:\n<snip>\n[   84.964298] [    T928] ============================================\n[   84.964304] [    T928] WARNING: possible recursive locking detected\n[   84.964311] [    T928] 6.18.0-rc3 #51 Not tainted\n[   84.964315] [    T928] --------------------------------------------\n[   84.964320] [    T928] eehd/928 is trying to acquire lock:\n[   84.964324] [    T928] c000000003b29d58 (pci_rescan_remove_lock){+.+.}-{3:3}, at: pci_lock_rescan_remove+0x28/0x40\n[   84.964342] [    T928]\n                       but task is already holding lock:\n[   84.964347] [    T928] c000000003b29d58 (pci_rescan_remove_lock){+.+.}-{3:3}, at: pci_lock_rescan_remove+0x28/0x40\n[   84.964357] [    T928]\n                       other info that might help us debug this:\n[   84.964363] [    T928]  Possible unsafe locking scenario:\n\n[   84.964367] [    T928]        CPU0\n[   84.964370] [    T928]        ----\n[   84.964373] [    T928]   lock(pci_rescan_remove_lock);\n[   84.964378] [    T928]   lock(pci_rescan_remove_lock);\n[   84.964383] [    T928]\n                       *** DEADLOCK ***\n\n[   84.964388] [    T928]  May be due to missing lock nesting notation\n\n[   84.964393] [    T928] 1 lock held by eehd/928:\n[   84.964397] [    T928]  #0: c000000003b29d58 (pci_rescan_remove_lock){+.+.}-{3:3}, at: pci_lock_rescan_remove+0x28/0x40\n[   84.964408] [    T928]\n                       stack backtrace:\n[   84.964414] [    T928] CPU: 2 UID: 0 PID: 928 Comm: eehd Not tainted 6.18.0-rc3 #51 VOLUNTARY\n[   84.964417] [    T928] Hardware name: IBM,9080-HEX POWER10 (architected) 0x800200 0xf000006 of:IBM,FW1060.00 (NH1060_022) hv:phyp pSeries\n[   84.964419] [    T928] Call Trace:\n[   84.964420] [    T928] [c0000011a7157990] [c000000001705de4] dump_stack_lvl+0xc8/0x130 (unreliable)\n[   84.964424] [    T928] [c0000011a71579d0] [c0000000002f66e0] print_deadlock_bug+0x430/0x440\n[   84.964428] [    T928] [c0000011a7157a70] [c0000000002fd0c0] __lock_acquire+0x1530/0x2d80\n[   84.964431] [    T928] [c0000011a7157ba0] [c0000000002fea54] lock_acquire+0x144/0x410\n[   84.964433] [    T928] [c0000011a7157cb0] [c0000011a7157cb0] __mutex_lock+0xf4/0x1050\n[   84.964436] [    T928] [c0000011a7157e00] [c000000000de21d8] pci_lock_rescan_remove+0x28/0x40\n[   84.964439] [    T928] [c0000011a7157e20] [c00000000004ed98] eeh_pe_bus_get+0x48/0xc0\n[   84.964442] [    T928] [c0000011a7157e50] [c00000\n---truncated---"
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-05-27T12:17:12.504Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/89810e2d80281d42f855fac813786758ee16e323"
        },
        {
          "url": "https://git.kernel.org/stable/c/788dd28fd49610d6047cbb15dbf1186afffdfbaf"
        },
        {
          "url": "https://git.kernel.org/stable/c/f49faa4a64f8ac0e38983e606075b25dfcfc9ad4"
        },
        {
          "url": "https://git.kernel.org/stable/c/87a1f93986aa1500b85aeff16b0b71c29ea116ea"
        },
        {
          "url": "https://git.kernel.org/stable/c/f8b16d5764ee1e78c1ef333017ad383ffe76fcdc"
        },
        {
          "url": "https://git.kernel.org/stable/c/6e6561231c6cfc32c5631aeecc0928ff2b14265c"
        },
        {
          "url": "https://git.kernel.org/stable/c/b85ee287bfe52c6b2d9b41758b5e0d08679d5b39"
        },
        {
          "url": "https://git.kernel.org/stable/c/815a8d2feb5615ae7f0b5befd206af0b0160614c"
        }
      ],
      "title": "powerpc/eeh: fix recursive pci_lock_rescan_remove locking in EEH event handling",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-45904",
    "datePublished": "2026-05-27T12:17:12.504Z",
    "dateReserved": "2026-05-13T15:03:33.084Z",
    "dateUpdated": "2026-05-27T12:17:12.504Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}