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

CVE-2023-53752

CVE-2023-53752

Description

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

net: deal with integer overflows in kmalloc_reserve()

Blamed commit changed: ptr = kmalloc(size); if (ptr) size = ksize(ptr);

size = kmalloc_size_roundup(size); ptr = kmalloc(size);

This allowed various crash as reported by syzbot [1] and Kyle Zeng.

Problem is that if @size is bigger than 0x80000001, kmalloc_size_roundup(size) returns 2^32.

kmalloc_reserve() uses a 32bit variable (obj_size), so 2^32 is truncated to 0.

kmalloc(0) returns ZERO_SIZE_PTR which is not handled by skb allocations.

Following trace can be triggered if a netdev->mtu is set close to 0x7fffffff

We might in the future limit netdev->mtu to more sensible limit (like KMALLOC_MAX_SIZE).

This patch is based on a syzbot report, and also a report and tentative fix from Kyle Zeng.

[1] BUG: KASAN: user-memory-access in __build_skb_around net/core/skbuff.c:294 [inline] BUG: KASAN: user-memory-access in __alloc_skb+0x3c4/0x6e8 net/core/skbuff.c:527 Write of size 32 at addr 00000000fffffd10 by task syz-executor.4/22554

CPU: 1 PID: 22554 Comm: syz-executor.4 Not tainted 6.1.39-syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/03/2023 Call trace: dump_backtrace+0x1c8/0x1f4 arch/arm64/kernel/stacktrace.c:279 show_stack+0x2c/0x3c arch/arm64/kernel/stacktrace.c:286 __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0x120/0x1a0 lib/dump_stack.c:106 print_report+0xe4/0x4b4 mm/kasan/report.c:398 kasan_report+0x150/0x1ac mm/kasan/report.c:495 kasan_check_range+0x264/0x2a4 mm/kasan/generic.c:189 memset+0x40/0x70 mm/kasan/shadow.c:44 __build_skb_around net/core/skbuff.c:294 [inline] __alloc_skb+0x3c4/0x6e8 net/core/skbuff.c:527 alloc_skb include/linux/skbuff.h:1316 [inline] igmpv3_newpack+0x104/0x1088 net/ipv4/igmp.c:359 add_grec+0x81c/0x1124 net/ipv4/igmp.c:534 igmpv3_send_cr net/ipv4/igmp.c:667 [inline] igmp_ifc_timer_expire+0x1b0/0x1008 net/ipv4/igmp.c:810 call_timer_fn+0x1c0/0x9f0 kernel/time/timer.c:1474 expire_timers kernel/time/timer.c:1519 [inline] __run_timers+0x54c/0x710 kernel/time/timer.c:1790 run_timer_softirq+0x28/0x4c kernel/time/timer.c:1803 _stext+0x380/0xfbc ____do_softirq+0x14/0x20 arch/arm64/kernel/irq.c:79 call_on_irq_stack+0x24/0x4c arch/arm64/kernel/entry.S:891 do_softirq_own_stack+0x20/0x2c arch/arm64/kernel/irq.c:84 invoke_softirq kernel/softirq.c:437 [inline] __irq_exit_rcu+0x1c0/0x4cc kernel/softirq.c:683 irq_exit_rcu+0x14/0x78 kernel/softirq.c:695 el0_interrupt+0x7c/0x2e0 arch/arm64/kernel/entry-common.c:717 __el0_irq_handler_common+0x18/0x24 arch/arm64/kernel/entry-common.c:724 el0t_64_irq_handler+0x10/0x1c arch/arm64/kernel/entry-common.c:729 el0t_64_irq+0x1a0/0x1a4 arch/arm64/kernel/entry.S:584

AI Insight

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

Integer overflow in kmalloc_reserve() in the Linux kernel can cause truncation of skb allocation size, leading to a KASAN out-of-bounds write when a netdev MTU is set near 0x7fffffff.

Vulnerability

An integer overflow vulnerability exists in the kmalloc_reserve() function of the Linux kernel's network subsystem. The function calculates an allocation size using kmalloc_size_roundup(size), which can return 2^32 when the input size exceeds 0x80000001. This value is stored in a 32-bit variable (obj_size), causing truncation to 0. Consequently, kmalloc(0) returns ZERO_SIZE_PTR, which is not handled correctly by subsequent socket buffer allocations, leading to a crash or memory corruption [1].

Exploitation

This issue can be triggered by setting a network device's Maximum Transmission Unit (MTU) to a value close to 0x7fffffff. When the kernel attempts to allocate an skb for IGMP packets (e.g., via igmpv3_newpack()), the oversized MTU causes the integer overflow in kmalloc_reserve(). The attacker must have the ability to configure the MTU of a net device, typically requiring privileged access (CAP_NET_ADMIN) or physical control over the interface. The syzbot fuzzer demonstrated a reproducer, and Kyle Zeng independently reported the issue [1].

Impact

Successful exploitation leads to a kernel memory corruption that manifests as a KASAN (Kernel Address Sanitizer) user-memory-access fault. In the provided crash trace, a write of size 32 at an invalid address (0xfffffd10) occurs during __build_skb_around(). This can cause a denial of service (system crash) and potentially allow privilege escalation or arbitrary code execution, though the reference only confirms a crash [1].

Mitigation

The fix is included in Linux kernel stable commit 915d975b2ffa ("net: deal with integer overflows in kmalloc_reserve()"). This commit ensures that the allocation size is properly validated before use, preventing the overflow. Systems running affected kernels (e.g., 6.1.39) should apply the patch. There is no workaround other than restricting MTU configuration to trusted users [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

2

Patches

4

Vulnerability mechanics

Generated on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.

References

4

News mentions

0

No linked articles in our index yet.