Skip to main content

Boteraser | Website and Server Security Solutions

🛡️ CVE-2025-38181 — debian-linux

🟠 CVSS 7.5 — High ✅ No Known Exploit CWE-476 NVD
7.5
CVSS Score
0 Low4 Medium7 High9 Critical10

Description

calipso: Fix null-ptr-deref in calipso_req_{set,del}attr().

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

calipso: Fix null-ptr-deref in calipso_req_{set,del}attr().

syzkaller reported a null-ptr-deref in sock_omalloc() while allocating

a CALIPSO option. [0]

The NULL is of struct sock, which was fetched by sk_to_full_sk() in

calipso_req_setattr().

Since commit a1a5344ddbe8 ("tcp: avoid two atomic ops for syncookies"),

reqsk->rsk_listener could be NULL when SYN Cookie is returned to its

client, as hinted by the leading SYN Cookie log.

Here are 3 options to fix the bug:

1) Return 0 in calipso_req_setattr()

2) Return an error in calipso_req_setattr()

3) Alaways set rsk_listener

1) is no go as it bypasses LSM, but 2) effectively disables SYN Cookie

for CALIPSO. 3) is also no go as there have been many efforts to reduce

atomic ops and make TCP robust against DDoS. See also commit 3b24d854cb35

("tcp/dccp: do not touch listener sk_refcnt under synflood").

As of the blamed commit, SYN Cookie already did not need refcounting,

and no one has stumbled on the bug for 9 years, so no CALIPSO user will

care about SYN Cookie.

Let's return an error in calipso_req_setattr() and calipso_req_delattr()

in the SYN Cookie case.

This can be reproduced by [1] on Fedora and now connect() of nc times out.

[0]:

TCP: request_sock_TCPv6: Possible SYN flooding on port [::]:20002. Sending cookies.

Oops: general protection fault, probably for non-canonical address 0xdffffc0000000006: 0000 [#1] PREEMPT SMP KASAN NOPTI

KASAN: null-ptr-deref in range [0x0000000000000030-0x0000000000000037]

CPU: 3 UID: 0 PID: 12262 Comm: syz.1.2611 Not tainted 6.14.0 #2

Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org 04/01/2014

RIP: 0010:read_pnet include/net/net_namespace.h:406 [inline]

RIP: 0010:sock_net include/net/sock.h:655 [inline]

RIP: 0010:sock_kmalloc+0x35/0x170 net/core/sock.c:2806

Code: 89 d5 41 54 55 89 f5 53 48 89 fb e8 25 e3 c6 fd e8 f0 91 e3 00 48 8d 7b 30 48 b8 00 00 00 00 00 fc ff df 48 89 fa 48 c1 ea 03 <80> 3c 02 00 0f 85 26 01 00 00 48 b8 00 00 00 00 00 fc ff df 4c 8b

RSP: 0018:ffff88811af89038 EFLAGS: 00010216

RAX: dffffc0000000000 RBX: 0000000000000000 RCX: ffff888105266400

RDX: 0000000000000006 RSI: ffff88800c890000 RDI: 0000000000000030

RBP: 0000000000000050 R08: 0000000000000000 R09: ffff88810526640e

R10: ffffed1020a4cc81 R11: ffff88810526640f R12: 0000000000000000

R13: 0000000000000820 R14: ffff888105266400 R15: 0000000000000050

FS: 00007f0653a07640(0000) GS:ffff88811af80000(0000) knlGS:0000000000000000

CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033

CR2: 00007f863ba096f4 CR3: 00000000163c0005 CR4: 0000000000770ef0

PKRU: 80000000

Call Trace:

<IRQ>

ipv6_renew_options+0x279/0x950 net/ipv6/exthdrs.c:1288

calipso_req_setattr+0x181/0x340 net/ipv6/calipso.c:1204

calipso_req_setattr+0x56/0x80 net/netlabel/netlabel_calipso.c:597

netlbl_req_setattr+0x18a/0x440 net/netlabel/netlabel_kapi.c:1249

selinux_netlbl_inet_conn_request+0x1fb/0x320 security/selinux/netlabel.c:342

selinux_inet_conn_request+0x1eb/0x2c0 security/selinux/hooks.c:5551

security_inet_conn_request+0x50/0xa0 security/security.c:4945

tcp_v6_route_req+0x22c/0x550 net/ipv6/tcp_ipv6.c:825

tcp_conn_request+0xec8/0x2b70 net/ipv4/tcp_input.c:7275

tcp_v6_conn_request+0x1e3/0x440 net/ipv6/tcp_ipv6.c:1328

tcp_rcv_state_process+0xafa/0x52b0 net/ipv4/tcp_input.c:6781

tcp_v6_do_rcv+0x8a6/0x1a40 net/ipv6/tcp_ipv6.c:1667

tcp_v6_rcv+0x505e/0x5b50 net/ipv6/tcp_ipv6.c:1904

ip6_protocol_deliver_rcu+0x17c/0x1da0 net/ipv6/ip6_input.c:436

ip6_input_finish+0x103/0x180 net/ipv6/ip6_input.c:480

NF_HOOK include/linux/netfilter.h:314 [inline]

NF_HOOK include/linux/netfilter.h:308 [inline]

ip6_input+0x13c/0x6b0 net/ipv6/ip6_input.c:491

dst_input include/net/dst.h:469 [inline]

ip6_rcv_finish net/ipv6/ip6_input.c:79 [inline]

ip6_rcv_finish+0xb6/0x490 net/ipv6/ip6_input.c:69

NF_HOOK include/linux/netfilter.h:314 [inline]

NF_HOOK include/linux/netf

---truncated---

How this vulnerability can be exploited

This issue can be reached over the network, attack complexity is low, an attacker needs no privileges on the target. No user interaction is required. The scope is unchanged, so the impact stays within the vulnerable component. Rated impact: confidentiality none, integrity none, availability high.

Weakness class

CVE-2025-38181 is classified as CWE-476: NULL Pointer Dereference. A pointer that can be null is used without a check, crashing the process.

Affected software

CVE-2025-38181 is recorded against 3 packages.

  • debian-linux
  • kernel (from 6.13.0 up to 6.15.4)
  • linux-kernel

Timeline and source

Published on 4 July 2025 and last revised on 30 July 2026. No public exploit is currently recorded for this entry. A vendor advisory or fix has been published. Record sourced from NVD.

References

git.kernel.org
git.kernel.org
git.kernel.org
git.kernel.org
git.kernel.org
git.kernel.org
git.kernel.org
git.kernel.org
lists.debian.org
lists.debian.org

CVE-2025-38181 on other distributions

Each distribution ships its own build and its own fixed version. Pick the one you run:

Details

Severity HIGH
CVSS Score 7.5
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
CWE CWE-476
Public Exploit ✅ No
Source NVD
Published 2025-07-04
Updated 2026-08-20
Modified 2026-07-30

Affected Packages

Software From version Fixed in
debian-linux
kernel 6.13.0 6.15.4
linux-kernel

References

Similar Threats

Site Security Check

Is debian-linux part of your stack?

CVE-2025-38181 is rated CVSS 7.5 High. BotEraser scans your installation against known CVE records and tells you whether this vulnerability applies to the versions you actually run.

Scan My Site Free →

No credit card required  ·  Results in minutes

ⓘ Data Notice: The information presented above has been compiled from publicly available internet sources. Boteraser aggregates this data solely for informational purposes and does not independently classify, evaluate, or endorse any findings about the vulnerabilities listed. The accuracy and completeness of this information is the sole responsibility of the original publishers. Boteraser and its operators accept no liability for any decisions made based on this data.