CVE-2023-54321: driver core: fix potential null-ptr-deref in device_add()
In the Linux kernel, the following vulnerability has been resolved:
driver core: fix potential null-ptr-deref in device_add()
I got the following null-ptr-deref report while doing fault injection test:
BUG: kernel NULL pointer dereference, address: 0000000000000058
CPU: 2 PID: 278 Comm: 37-i2c-ds2482 Tainted: G B W N 6.1.0-rc3+
RIP: 0010:klist_put+0x2d/0xd0
Call Trace:
<TASK>
klist_remove+0xf1/0x1c0
device_release_driver_internal+0x196/0x210
bus_remove_device+0x1bd/0x240
device_add+0xd3d/0x1100
w1_add_master_device+0x476/0x490 [wire]
ds2482_probe+0x303/0x3e0 [ds2482]
This is how it happened:
w1_alloc_dev()
// The dev->driver is set to w1_master_driver.
memcpy(&dev->dev, device, sizeof(struct device));
device_add()
bus_add_device()
dpm_sysfs_add() // It fails, calls bus_remove_device.
// error path
bus_remove_device()
// The dev->driver is not null, but driver is not bound.
__device_release_driver()
klist_remove(&dev->p->knode_driver) <-- It causes null-ptr-deref.
// normal path
bus_probe_device() // It's not called yet.
device_bind_driver()
If dev->driver is set, in the error path after calling bus_add_device()
in device_add(), bus_remove_device() is called, then the device will be
detached from driver. But device_bind_driver() is not called yet, so it
causes null-ptr-deref while access the 'knode_driver'. To fix this, set
dev->driver to null in the error path before calling bus_remove_device().
Security readout for executives and security teams
Plain-English summary
CVE-2023-54321 is a Linux kernel driver-core bug that can crash kernel code during a failed device-add operation. The public record describes a null pointer dereference found through fault injection, not a proven remote attack. Business impact is mainly availability risk on affected Linux systems until vendor kernel fixes are applied.
Executive priority
Handle through normal kernel patch management unless your vendor assigns higher severity. There is no active exploitation evidence in the supplied bundle, but kernel crash bugs can still affect reliability on exposed operational systems.
Technical view
The bug is in device_add() error handling after bus_add_device(). If dev->driver is set before device_bind_driver() runs, bus_remove_device() may try to detach an unbound driver and dereference knode_driver, causing a kernel null-pointer dereference. The fix clears dev->driver before bus_remove_device() on that error path.
Likely exposure
Exposure is limited to Linux systems running affected kernel versions where relevant driver/device registration paths can hit the failing device_add() error path. The bundle does not identify specific distributions, appliances, cloud images, or configurations beyond Linux kernel versions and stable commits.
Exploitation context
The source evidence describes a fault-injection finding and kernel crash trace. KEV is false, and the bundle provides no evidence of active exploitation, public exploit code, or remote exploitation. Practical exploitability is not established by the provided sources.
Researcher notes
Evidence is sparse: no CVSS, CWE, exploit status, or distro mappings are provided. Analysis should focus on whether local kernels include the stable driver-core fix and whether affected driver registration paths are reachable in the environment.
Mitigation direction
Apply Linux distribution or vendor kernel updates containing the referenced stable fixes.
Prioritize systems that load device drivers or modules in dynamic or fault-prone environments.
Check vendor advisories for exact fixed package versions before scheduling rollout.
Reboot systems where required to activate the updated kernel.
If patching is delayed, monitor kernel logs for related null dereference crashes.
Validation and detection
Inventory running kernel versions across Linux hosts and appliances.
Compare installed kernels with vendor advisories and referenced stable commits.
Review kernel logs for device_add, bus_remove_device, klist_remove, or null dereference traces.
Test updated kernels with representative hardware drivers and kernel modules.
Confirm vulnerability scanners map this CVE to vendor-specific fixed packages.
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.
cve · low confidence lookup
CVE-2023-54321 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
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.
0CVSS vectors
3Timeline events
0ADP providers
6Source links
Vulnerability timeline
Timeline events are normalized from CVE metadata, CNA source timelines, ADP timelines, and KEV metadata when present.
CVE reservedCVE Program
The CVE ID was reserved by the assigning CNA.
CVE publishedCVE Program
The CVE record was published.
Dec 30, 2025, 12:34 UTC (UTC+00:00)
CVE updatedCVE Program
The CVE record metadata indicates this as the latest update time.