CVE-2023-53856
Description
In the Linux kernel, the following vulnerability has been resolved:
of: overlay: Call of_changeset_init() early
When of_overlay_fdt_apply() fails, the changeset may be partially applied, and the caller is still expected to call of_overlay_remove() to clean up this partial state.
However, of_overlay_apply() calls of_resolve_phandles() before init_overlay_changeset(). Hence if the overlay fails to apply due to an unresolved symbol, the overlay_changeset.cset.entries list is still uninitialized, and cleanup will crash with a NULL-pointer dereference in overlay_removal_is_ok().
Fix this by moving the call to of_changeset_init() from init_overlay_changeset() to of_overlay_fdt_apply(), where all other early initialization is done.
AI Insight
LLM-synthesized narrative grounded in this CVE's description and references.
A NULL-pointer dereference in Linux kernel's device tree overlay removal occurs when an overlay fails due to unresolved phandles, fixed by initializing the changeset earlier.
Vulnerability
Overview
In the Linux kernel's device tree overlay subsystem, a NULL-pointer dereference vulnerability exists in the overlay removal path. The root cause is that of_changeset_init() is called inside init_overlay_changeset(), which runs after of_resolve_phandles() in of_overlay_fdt_apply(). If the overlay fails due to an unresolved phandle, the changeset's cset.entries list remains uninitialized. When the caller subsequently attempts to clean up via of_overlay_remove(), the function overlay_removal_is_ok() dereferences this uninitialized list, causing a kernel crash [1][2].
Exploitation
To exploit this vulnerability, an attacker must be able to apply a device tree overlay that contains unresolved phandles. This typically requires local access and the ability to trigger overlay loading, such as through a privileged process or a hotplug event. No authentication is needed beyond the capability to load overlays, which is often restricted to root or users with specific capabilities.
Impact
Successful exploitation results in a denial of service (DoS) due to a kernel NULL-pointer dereference, leading to a system crash or hang. There is no indication of privilege escalation or data corruption beyond the immediate crash.
Mitigation
The fix moves the call to of_changeset_init() from init_overlay_changeset() to of_overlay_fdt_apply(), ensuring the changeset is initialized before any failure point. This patch has been applied to the Linux kernel stable branches as referenced in commits [1] and [2]. Users are advised to update to the latest stable kernel version containing this fix.
AI Insight generated on May 19, 2026. Synthesized from this CVE's description and the cited reference URLs; citations are validated against the source bundle.
Affected products
1Patches
5c403c81b577a01bb96ad38083fb210cd521cbe86241bf5d1a9515ff4fb14Vulnerability mechanics
Generated on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.
References
5- git.kernel.org/stable/c/01bb96ad38089f5cc6de7746dac13437d35eb1dcnvd
- git.kernel.org/stable/c/3fb210cd521c9efcb211e9f5ce40fc907200bf13nvd
- git.kernel.org/stable/c/a9515ff4fb142b690a0d2b58782b15903b990dbanvd
- git.kernel.org/stable/c/be86241bf5d1efd16d8a7231c13b33459c5d755dnvd
- git.kernel.org/stable/c/c403c81b577a67fe9ec6a2e89d143256487be50fnvd
News mentions
0No linked articles in our index yet.