VYPR
Unrated severityNVD Advisory· Published Feb 4, 2026· Updated Apr 15, 2026

CVE-2026-23048

CVE-2026-23048

Description

In the Linux kernel, the following vulnerability has been resolved:

udp: call skb_orphan() before skb_attempt_defer_free()

Standard UDP receive path does not use skb->destructor.

But skmsg layer does use it, since it calls skb_set_owner_sk_safe() from udp_read_skb().

This then triggers this warning in skb_attempt_defer_free():

DEBUG_NET_WARN_ON_ONCE(skb->destructor);

We must call skb_orphan() to fix this issue.

AI Insight

LLM-synthesized narrative grounded in this CVE's description and references.

A missing skb_orphan() call in the Linux kernel's UDP receive path can trigger a warning when skmsg layer sets a destructor, fixed by adding the call before skb_attempt_defer_free().

Root

Cause

The Linux kernel's UDP receive path normally does not use skb->destructor. However, the skmsg layer, via udp_read_skb(), calls skb_set_owner_sk_safe(), which sets a destructor on the socket buffer. When the kernel later attempts to defer freeing the skb with skb_attempt_defer_free(), it triggers a DEBUG_NET_WARN_ON_ONCE(skb->destructor) warning because the function expects no destructor to be set [1].

Exploitation

Exploitation

An attacker who can trigger the UDP receive path in a context where the skmsg layer is active (e.g., using BPF sockmap or similar) can cause the kernel to hit this warning. No special privileges are required beyond the ability to send UDP packets that are processed by a socket with an attached BPF program or other skmsg mechanism. The warning itself is a debug assertion, but in production kernels without DEBUG_NET it may manifest as a use-after-free or memory corruption if the destructor is mishandled.

Impact

If the warning is triggered, it indicates a potential memory safety issue. In debug kernels, the warning is printed but execution continues; however, the presence of a destructor when skb_attempt_defer_free() expects none can lead to incorrect reference counting or premature freeing of the socket owner, potentially causing a use-after-free condition. An attacker could leverage this to crash the system (denial of service) or, in some configurations, achieve arbitrary code execution.

Mitigation

The fix is to call skb_orphan() before skb_attempt_defer_free() in the UDP receive path, which clears the destructor and owner reference. This patch has been applied to the stable kernel trees [2]. Users should update to a kernel version containing the commit e5c8eda39a9fc1547d1398d707aa06c1d080abdd080abdd or later. No workaround is available; updating is the only mitigation.

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

1

Patches

0

No patches discovered yet.

Vulnerability mechanics

AI mechanics synthesis has not run for this CVE yet.

References

2

News mentions

0

No linked articles in our index yet.