VYPR
Unrated severityNVD Advisory· Published Dec 24, 2025· Updated Apr 15, 2026

CVE-2023-54051

CVE-2023-54051

Description

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

net: do not allow gso_size to be set to GSO_BY_FRAGS

One missing check in virtio_net_hdr_to_skb() allowed syzbot to crash kernels again [1]

Do not allow gso_size to be set to GSO_BY_FRAGS (0xffff), because this magic value is used by the kernel.

[1] general protection fault, probably for non-canonical address 0xdffffc000000000e: 0000 [#1] PREEMPT SMP KASAN KASAN: null-ptr-deref in range [0x0000000000000070-0x0000000000000077] CPU: 0 PID: 5039 Comm: syz-executor401 Not tainted 6.5.0-rc5-next-20230809-syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/26/2023 RIP: 0010:skb_segment+0x1a52/0x3ef0 net/core/skbuff.c:4500 Code: 00 00 00 e9 ab eb ff ff e8 6b 96 5d f9 48 8b 84 24 00 01 00 00 48 8d 78 70 48 b8 00 00 00 00 00 fc ff df 48 89 fa 48 c1 ea 03 <0f> b6 04 02 84 c0 74 08 3c 03 0f 8e ea 21 00 00 48 8b 84 24 00 01 RSP: 0018:ffffc90003d3f1c8 EFLAGS: 00010202 RAX: dffffc0000000000 RBX: 000000000001fffe RCX: 0000000000000000 RDX: 000000000000000e RSI: ffffffff882a3115 RDI: 0000000000000070 RBP: ffffc90003d3f378 R08: 0000000000000005 R09: 000000000000ffff R10: 000000000000ffff R11: 5ee4a93e456187d6 R12: 000000000001ffc6 R13: dffffc0000000000 R14: 0000000000000008 R15: 000000000000ffff FS: 00005555563f2380(0000) GS:ffff8880b9800000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000020020000 CR3: 000000001626d000 CR4: 00000000003506f0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace:

udp6_ufo_fragment+0x9d2/0xd50 net/ipv6/udp_offload.c:109 ipv6_gso_segment+0x5c4/0x17b0 net/ipv6/ip6_offload.c:120 skb_mac_gso_segment+0x292/0x610 net/core/gso.c:53 __skb_gso_segment+0x339/0x710 net/core/gso.c:124 skb_gso_segment include/net/gso.h:83 [inline] validate_xmit_skb+0x3a5/0xf10 net/core/dev.c:3625 __dev_queue_xmit+0x8f0/0x3d60 net/core/dev.c:4329 dev_queue_xmit include/linux/netdevice.h:3082 [inline] packet_xmit+0x257/0x380 net/packet/af_packet.c:276 packet_snd net/packet/af_packet.c:3087 [inline] packet_sendmsg+0x24c7/0x5570 net/packet/af_packet.c:3119 sock_sendmsg_nosec net/socket.c:727 [inline] sock_sendmsg+0xd9/0x180 net/socket.c:750 ____sys_sendmsg+0x6ac/0x940 net/socket.c:2496 ___sys_sendmsg+0x135/0x1d0 net/socket.c:2550 __sys_sendmsg+0x117/0x1e0 net/socket.c:2579 do_syscall_x64 arch/x86/entry/common.c:50 [inline] do_syscall_64+0x38/0xb0 arch/x86/entry/common.c:80 entry_SYSCALL_64_after_hwframe+0x63/0xcd RIP: 0033:0x7ff27cdb34d9

AI Insight

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

A missing check in the Linux kernel's virtio_net_hdr_to_skb() allows setting gso_size to the internal GSO_BY_FRAGS value, leading to a null-ptr-deref crash.

Vulnerability

In the Linux kernel, the function virtio_net_hdr_to_skb() lacked a check to prevent the gso_size field gso_size from being set to the internal to the kernel's internal GSO_BY_FRAGS (0xffff) value. This magic value is reserved for kernel use and should not be allowed from user-supplied virtio headers. The missing validation allowed a crafted packet to trigger a general protection fault due to a null-pointer dereference in skb_segment() [1].

Exploitation

An attacker with the ability to send crafted packets to a vulnerable system (e.g., via a virtual network interface in a guest VM) can set the gso_size field to GSO_BY_FRAGS in the virtio header. This can be done without authentication if the attacker can inject packets into the network path that reaches the kernel's networking stack. The vulnerability was discovered and demonstrated by syzbot, which triggered the crash by sending a specially crafted packet [1].

Impact

Successful exploitation causes a kernel crash (general protection fault) due to a null-pointer dereference in skb_segment(), leading to a denial of service (DoS) condition. The crash occurs in the skb_segment function when it attempts to access memory at an offset derived from the invalid gso_size value. The impact is limited to system instability and potential downtime for any services relying on the affected kernel [1].

Mitigation

The fix is included in Linux kernel stable releases. The commit 210ff31342ade546d8d9d0ec4d3cf9cb50ae632d (and backports) adds the missing check to reject gso_size values equal to GSO_BY_FRAGS in virtio_net_hdr_to_skb(). Users should apply the latest kernel updates from their distribution to mitigate this vulnerability [1].

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

8

Vulnerability mechanics

Synthesis attempt was rejected by the grounding validator. Re-run pending.

References

8

News mentions

0

No linked articles in our index yet.