{"id":"CVE-2021-47617","state":"PUBLISHED","title":"PCI: pciehp: Fix infinite loop in IRQ handler upon power fault","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nPCI: pciehp: Fix infinite loop in IRQ handler upon power fault\n\nThe Power Fault Detected bit in the Slot Status register differs from\nall other hotplug events in that it is sticky:  It can only be cleared\nafter turning off slot power.  Per PCIe r5.0, sec. 6.7.1.8:\n\n  If a power controller detects a main power fault on the hot-plug slot,\n  it must automatically set its internal main power fault latch [...].\n  The main power fault latch is cleared when software turns off power to\n  the hot-plug slot.\n\nThe stickiness used to cause interrupt storms and infinite loops which\nwere fixed in 2009 by commits 5651c48cfafe (\"PCI pciehp: fix power fault\ninterrupt storm problem\") and 99f0169c17f3 (\"PCI: pciehp: enable\nsoftware notification on empty slots\").\n\nUnfortunately in 2020 the infinite loop issue was inadvertently\nreintroduced by commit 8edf5332c393 (\"PCI: pciehp: Fix MSI interrupt\nrace\"):  The hardirq handler pciehp_isr() clears the PFD bit until\npciehp's power_fault_detected flag is set.  That happens in the IRQ\nthread pciehp_ist(), which never learns of the event because the hardirq\nhandler is stuck in an infinite loop.  Fix by setting the\npower_fault_detected flag already in the hardirq handler.","publishedAt":"2024-06-20T10:57:01.508Z","updatedAt":"2026-05-23T15:20:19.921Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"a8cc52270f3d8e8f4faf01ffd6c4a95bbfb55ba4","status":"affected","lessThan":"ff27f7d0333cff89ec85c419f431aca1b38fb16a","versionType":"git"},{"version":"4667358dab9cc07da044d5bc087065545b1000df","status":"affected","lessThan":"464da38ba827f670deac6500a1de9a4f0f44c41d","versionType":"git"},{"version":"8edf5332c39340b9583cf9cba659eb7ec71f75b5","status":"affected","lessThan":"3b4c966fb156ff3e70b2526d964952ff7c1574d9","versionType":"git"},{"version":"8edf5332c39340b9583cf9cba659eb7ec71f75b5","status":"affected","lessThan":"1db58c6584a72102e98af2e600ea184ddaf2b8af","versionType":"git"},{"version":"8edf5332c39340b9583cf9cba659eb7ec71f75b5","status":"affected","lessThan":"6d6f1f0dac3e3441ecdb1103d4efb11b9ed24dd5","versionType":"git"},{"version":"8edf5332c39340b9583cf9cba659eb7ec71f75b5","status":"affected","lessThan":"23584c1ed3e15a6f4bfab8dc5a88d94ab929ee12","versionType":"git"},{"version":"4.19.149","status":"affected","lessThan":"4.19.233","versionType":"semver"},{"version":"5.4.69","status":"affected","lessThan":"5.4.177","versionType":"semver"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/pci/hotplug/pciehp_hpc.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"5.7","status":"affected"},{"version":"0","status":"unaffected","lessThan":"5.7","versionType":"semver"},{"version":"4.19.233","status":"unaffected","lessThanOrEqual":"4.19.*","versionType":"semver"},{"version":"5.4.177","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.97","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.20","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"5.16.6","status":"unaffected","lessThanOrEqual":"5.16.*","versionType":"semver"},{"version":"5.17","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/pci/hotplug/pciehp_hpc.c"]}],"references":["https://git.kernel.org/stable/c/ff27f7d0333cff89ec85c419f431aca1b38fb16a","https://git.kernel.org/stable/c/464da38ba827f670deac6500a1de9a4f0f44c41d","https://git.kernel.org/stable/c/3b4c966fb156ff3e70b2526d964952ff7c1574d9","https://git.kernel.org/stable/c/1db58c6584a72102e98af2e600ea184ddaf2b8af","https://git.kernel.org/stable/c/6d6f1f0dac3e3441ecdb1103d4efb11b9ed24dd5","https://git.kernel.org/stable/c/23584c1ed3e15a6f4bfab8dc5a88d94ab929ee12"],"weaknesses":[],"ingestedAt":"2026-10-29T19:49:19.404Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2021/47xxx/CVE-2021-47617.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2021-47617","state":"PUBLISHED","datePublished":"2024-06-20T10:57:01.508Z","dateUpdated":"2026-05-23T15:20:19.921Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2024-06-19T14:55:32.795Z"},"containers":{"cna":{"title":"PCI: pciehp: Fix infinite loop in IRQ handler upon power fault","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nPCI: pciehp: Fix infinite loop in IRQ handler upon power fault\n\nThe Power Fault Detected bit in the Slot Status register differs from\nall other hotplug events in that it is sticky:  It can only be cleared\nafter turning off slot power.  Per PCIe r5.0, sec. 6.7.1.8:\n\n  If a power controller detects a main power fault on the hot-plug slot,\n  it must automatically set its internal main power fault latch [...].\n  The main power fault latch is cleared when software turns off power to\n  the hot-plug slot.\n\nThe stickiness used to cause interrupt storms and infinite loops which\nwere fixed in 2009 by commits 5651c48cfafe (\"PCI pciehp: fix power fault\ninterrupt storm problem\") and 99f0169c17f3 (\"PCI: pciehp: enable\nsoftware notification on empty slots\").\n\nUnfortunately in 2020 the infinite loop issue was inadvertently\nreintroduced by commit 8edf5332c393 (\"PCI: pciehp: Fix MSI interrupt\nrace\"):  The hardirq handler pciehp_isr() clears the PFD bit until\npciehp's power_fault_detected flag is set.  That happens in the IRQ\nthread pciehp_ist(), which never learns of the event because the hardirq\nhandler is stuck in an infinite loop.  Fix by setting the\npower_fault_detected flag already in the hardirq handler."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"a8cc52270f3d8e8f4faf01ffd6c4a95bbfb55ba4","status":"affected","lessThan":"ff27f7d0333cff89ec85c419f431aca1b38fb16a","versionType":"git"},{"version":"4667358dab9cc07da044d5bc087065545b1000df","status":"affected","lessThan":"464da38ba827f670deac6500a1de9a4f0f44c41d","versionType":"git"},{"version":"8edf5332c39340b9583cf9cba659eb7ec71f75b5","status":"affected","lessThan":"3b4c966fb156ff3e70b2526d964952ff7c1574d9","versionType":"git"},{"version":"8edf5332c39340b9583cf9cba659eb7ec71f75b5","status":"affected","lessThan":"1db58c6584a72102e98af2e600ea184ddaf2b8af","versionType":"git"},{"version":"8edf5332c39340b9583cf9cba659eb7ec71f75b5","status":"affected","lessThan":"6d6f1f0dac3e3441ecdb1103d4efb11b9ed24dd5","versionType":"git"},{"version":"8edf5332c39340b9583cf9cba659eb7ec71f75b5","status":"affected","lessThan":"23584c1ed3e15a6f4bfab8dc5a88d94ab929ee12","versionType":"git"},{"version":"4.19.149","status":"affected","lessThan":"4.19.233","versionType":"semver"},{"version":"5.4.69","status":"affected","lessThan":"5.4.177","versionType":"semver"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/pci/hotplug/pciehp_hpc.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"5.7","status":"affected"},{"version":"0","status":"unaffected","lessThan":"5.7","versionType":"semver"},{"version":"4.19.233","status":"unaffected","lessThanOrEqual":"4.19.*","versionType":"semver"},{"version":"5.4.177","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.97","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.20","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"5.16.6","status":"unaffected","lessThanOrEqual":"5.16.*","versionType":"semver"},{"version":"5.17","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/pci/hotplug/pciehp_hpc.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/ff27f7d0333cff89ec85c419f431aca1b38fb16a"},{"url":"https://git.kernel.org/stable/c/464da38ba827f670deac6500a1de9a4f0f44c41d"},{"url":"https://git.kernel.org/stable/c/3b4c966fb156ff3e70b2526d964952ff7c1574d9"},{"url":"https://git.kernel.org/stable/c/1db58c6584a72102e98af2e600ea184ddaf2b8af"},{"url":"https://git.kernel.org/stable/c/6d6f1f0dac3e3441ecdb1103d4efb11b9ed24dd5"},{"url":"https://git.kernel.org/stable/c/23584c1ed3e15a6f4bfab8dc5a88d94ab929ee12"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-05-23T15:20:19.921Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.19.149","versionEndExcluding":"4.19.233"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.4.69","versionEndExcluding":"5.4.177"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.7","versionEndExcluding":"5.10.97"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.7","versionEndExcluding":"5.15.20"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.7","versionEndExcluding":"5.16.6"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.7","versionEndExcluding":"5.17"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CVE Program Container","references":[{"url":"https://git.kernel.org/stable/c/ff27f7d0333cff89ec85c419f431aca1b38fb16a","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/464da38ba827f670deac6500a1de9a4f0f44c41d","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/3b4c966fb156ff3e70b2526d964952ff7c1574d9","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/1db58c6584a72102e98af2e600ea184ddaf2b8af","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/6d6f1f0dac3e3441ecdb1103d4efb11b9ed24dd5","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/23584c1ed3e15a6f4bfab8dc5a88d94ab929ee12","tags":["x_transferred"]}],"providerMetadata":{"shortName":"CVE","orgId":"af854a3a-2127-422b-91ae-364da2661108","dateUpdated":"2024-08-04T05:47:40.879Z"}},{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"id":"CVE-2021-47617","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"version":"2.0.3","timestamp":"2024-09-10T17:11:38.706492Z"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2024-09-11T17:34:50.429Z"}}]}}}