CVE-2025-38185

atm: atmtcp: Free invalid length skb in atmtcp_c_send().

published July 4, 2025

CVSS
—
EPSS
0%
Percentile
8.8
In the wild
Unconfirmed
What it is

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

atm: atmtcp: Free invalid length skb in atmtcp_c_send().

syzbot reported the splat below. [0]

vcc_sendmsg() copies data passed from userspace to skb and passes

it to vcc->dev->ops->send().

atmtcp_c_send() accesses skb->data as struct atmtcp_hdr after

checking if skb->len is 0, but it's not enough.

Also, when skb->len == 0, skb and sk (vcc) were leaked because

dev_kfree_skb() is not called and sk_wmem_alloc adjustment is missing

to revert atm_account_tx() in vcc_sendmsg(), which is expected

to be done in atm_pop_raw().

Let's properly free skb with an invalid length in atmtcp_c_send().

[0]:

BUG: KMSAN: uninit-value in atmtcp_c_send+0x255/0xed0 drivers/atm/atmtcp.c:294

atmtcp_c_send+0x255/0xed0 drivers/atm/atmtcp.c:294

vcc_sendmsg+0xd7c/0xff0 net/atm/common.c:644

sock_sendmsg_nosec net/socket.c:712 [inline]

__sock_sendmsg+0x330/0x3d0 net/socket.c:727

____sys_sendmsg+0x7e0/0xd80 net/socket.c:2566

___sys_sendmsg+0x271/0x3b0 net/socket.c:2620

__sys_sendmsg net/socket.c:2652 [inline]

__do_sys_sendmsg net/socket.c:2657 [inline]

__se_sys_sendmsg net/socket.c:2655 [inline]

__x64_sys_sendmsg+0x211/0x3e0 net/socket.c:2655

x64_sys_call+0x32fb/0x3db0 arch/x86/include/generated/asm/syscalls_64.h:47

do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]

do_syscall_64+0xd9/0x210 arch/x86/entry/syscall_64.c:94

entry_SYSCALL_64_after_hwframe+0x77/0x7f

Uninit was created at:

slab_post_alloc_hook mm/slub.c:4154 [inline]

slab_alloc_node mm/slub.c:4197 [inline]

kmem_cache_alloc_node_noprof+0x818/0xf00 mm/slub.c:4249

kmalloc_reserve+0x13c/0x4b0 net/core/skbuff.c:579

__alloc_skb+0x347/0x7d0 net/core/skbuff.c:670

alloc_skb include/linux/skbuff.h:1336 [inline]

vcc_sendmsg+0xb40/0xff0 net/atm/common.c:628

sock_sendmsg_nosec net/socket.c:712 [inline]

__sock_sendmsg+0x330/0x3d0 net/socket.c:727

____sys_sendmsg+0x7e0/0xd80 net/socket.c:2566

___sys_sendmsg+0x271/0x3b0 net/socket.c:2620

__sys_sendmsg net/socket.c:2652 [inline]

__do_sys_sendmsg net/socket.c:2657 [inline]

__se_sys_sendmsg net/socket.c:2655 [inline]

__x64_sys_sendmsg+0x211/0x3e0 net/socket.c:2655

x64_sys_call+0x32fb/0x3db0 arch/x86/include/generated/asm/syscalls_64.h:47

do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]

do_syscall_64+0xd9/0x210 arch/x86/entry/syscall_64.c:94

entry_SYSCALL_64_after_hwframe+0x77/0x7f

CPU: 1 UID: 0 PID: 5798 Comm: syz-executor192 Not tainted 6.16.0-rc1-syzkaller-00010-g2c4a1f3fe03e #0 PREEMPT(undef)

Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 05/07/2025

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00196 · 8.8th percentile
Published
2025-07-04T13:37Z
EPSS history
Timeline
  • 04 JUL 13:37Z
    atm: atmtcp: Free invalid length skb in atmtcp_c_send().
    cvelistv5