CVE-2021-47503: scsi: pm80xx: Do not call scsi_remove_host() in pm8001_alloc()
In the Linux kernel, the following vulnerability has been resolved:
scsi: pm80xx: Do not call scsi_remove_host() in pm8001_alloc()
Calling scsi_remove_host() before scsi_add_host() results in a crash:
BUG: kernel NULL pointer dereference, address: 0000000000000108
RIP: 0010:device_del+0x63/0x440
Call Trace:
device_unregister+0x17/0x60
scsi_remove_host+0xee/0x2a0
pm8001_pci_probe+0x6ef/0x1b90 [pm80xx]
local_pci_probe+0x3f/0x90
We cannot call scsi_remove_host() in pm8001_alloc() because scsi_add_host()
has not been called yet at that point in time.
Function call tree:
pm8001_pci_probe()
|
`- pm8001_pci_alloc()
| |
| `- pm8001_alloc()
| |
| `- scsi_remove_host()
|
`- scsi_add_host()
Security readout for executives and security teams
Plain-English summary
CVE-2021-47503 is a Linux kernel crash bug in the pm80xx SCSI driver. If the affected driver reaches a specific initialization error path, the kernel can dereference a null pointer and crash. The documented impact is availability loss, not data theft or tampering.
Executive priority
Address during normal kernel patch cycles, with higher priority for storage infrastructure using this driver. It is a denial-of-service risk, and current sources do not support emergency internet-wide exposure or confirmed exploitation.
Technical view
The pm80xx driver called scsi_remove_host() inside pm8001_alloc() before scsi_add_host() had registered the host. That invalid call ordering can reach device_del() with null state and trigger a kernel NULL pointer dereference during pm8001_pci_probe().
Likely exposure
Exposure appears limited to Linux systems running affected kernel versions with the pm80xx SCSI driver present and able to reach the vulnerable probe/allocation path. The bundle does not identify remote network exposure or affected distro package names.
Exploitation context
The source bundle marks KEV as false and provides no evidence of active exploitation. CVSS describes local attack vector, low complexity, no privileges, no user interaction, and high availability impact only.
Researcher notes
The public evidence is specific to a driver initialization call-order bug and crash trace. Exact distribution impact, backport status, and practical trigger conditions are not fully described in the bundle; validate against vendor kernels and deployed hardware/driver usage.
Mitigation direction
Update to a kernel containing the referenced stable fixes.
Check Linux distribution advisories for backported fixed packages.
Prioritize hosts using or loading the pm80xx SCSI driver.
Treat unexplained kernel crashes on storage hosts as operationally urgent.
Validation and detection
Inventory running kernel versions against the affected ranges in the CVE bundle.
Confirm vendor kernel changelogs include the referenced stable commits.
Check whether the pm80xx driver is built, loaded, or required.
Review kernel logs for pm8001_pci_probe, scsi_remove_host, or NULL pointer crash traces.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cwe · low confidence lookup
CWE-476: Exact CWE lookup
Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.
CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.
CWE-476 · source CWE mapping
NULL Pointer Dereference
NULL Pointer Dereference represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.