Skip to main content

Boteraser | Website and Server Security Solutions

🛡️ CVE-2026-31507 — kernel

🟠 CVSS 7.8 — High ✅ No Known Exploit NVD
7.8
CVSS Score
0 Low4 Medium7 High9 Critical10

Description

net/smc: fix double-free of smc_spd_priv when tee() duplicates splice pipe buffer

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

net/smc: fix double-free of smc_spd_priv when tee() duplicates splice pipe buffer

smc_rx_splice() allocates one smc_spd_priv per pipe_buffer and stores

the pointer in pipe_buffer.private. The pipe_buf_operations for these

buffers used .get = generic_pipe_buf_get, which only increments the page

reference count when tee(2) duplicates a pipe buffer. The smc_spd_priv

pointer itself was not handled, so after tee() both the original and the

cloned pipe_buffer share the same smc_spd_priv *.

When both pipes are subsequently released, smc_rx_pipe_buf_release() is

called twice against the same object:

1st call: kfree(priv) sock_put(sk) smc_rx_update_cons() [correct]

2nd call: kfree(priv) sock_put(sk) smc_rx_update_cons() [UAF]

KASAN reports a slab-use-after-free in smc_rx_pipe_buf_release(), which

then escalates to a NULL-pointer dereference and kernel panic via

smc_rx_update_consumer() when it chases the freed priv->smc pointer:

BUG: KASAN: slab-use-after-free in smc_rx_pipe_buf_release+0x78/0x2a0

Read of size 8 at addr ffff888004a45740 by task smc_splice_tee_/74

Call Trace:

<TASK>

dump_stack_lvl+0x53/0x70

print_report+0xce/0x650

kasan_report+0xc6/0x100

smc_rx_pipe_buf_release+0x78/0x2a0

free_pipe_info+0xd4/0x130

pipe_release+0x142/0x160

__fput+0x1c6/0x490

__x64_sys_close+0x4f/0x90

do_syscall_64+0xa6/0x1a0

entry_SYSCALL_64_after_hwframe+0x77/0x7f

</TASK>

BUG: kernel NULL pointer dereference, address: 0000000000000020

RIP: 0010:smc_rx_update_consumer+0x8d/0x350

Call Trace:

<TASK>

smc_rx_pipe_buf_release+0x121/0x2a0

free_pipe_info+0xd4/0x130

pipe_release+0x142/0x160

__fput+0x1c6/0x490

__x64_sys_close+0x4f/0x90

do_syscall_64+0xa6/0x1a0

entry_SYSCALL_64_after_hwframe+0x77/0x7f

</TASK>

Kernel panic - not syncing: Fatal exception

Beyond the memory-safety problem, duplicating an SMC splice buffer is

semantically questionable: smc_rx_update_cons() would advance the

consumer cursor twice for the same data, corrupting receive-window

accounting. A refcount on smc_spd_priv could fix the double-free, but

the cursor-accounting issue would still need to be addressed separately.

The .get callback is invoked by both tee(2) and splice_pipe_to_pipe()

for partial transfers; both will now return -EFAULT. Users who need

to duplicate SMC socket data must use a copy-based read path.

How this vulnerability can be exploited

This issue can be reached with local access to the system, attack complexity is low, an attacker needs low-level privileges on the target. No user interaction is required. The scope is unchanged, so the impact stays within the vulnerable component. Rated impact: confidentiality high, integrity high, availability high.

Affected software

CVE-2026-31507 is recorded against 2 packages.

  • kernel (from 6.19.0 up to 6.19.11)
  • linux-kernel

Timeline and source

Published on 22 April 2026 and last revised on 12 August 2026. No public exploit is currently recorded for this entry. A vendor advisory or fix has been published. Record sourced from NVD.

References

cert-portal.siemens.com (Web)
cert-portal.siemens.com (Web)
git.kernel.org (Web)
git.kernel.org (Web)
git.kernel.org (Web)
git.kernel.org (Web)
git.kernel.org (Web)
git.kernel.org (Web)
git.kernel.org (Web)
git.kernel.org (Web)
github.com (Advisory)
nvd.nist.gov (Advisory)
git.kernel.org (Package)

CVE-2026-31507 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.8
CVSS Vector CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CWE N/A
Public Exploit ✅ No
Source NVD
Published 2026-04-22
Updated 2026-08-20
Modified 2026-08-12

Affected Packages

Software From version Fixed in
kernel 6.19.0 6.19.11
linux-kernel

References

Similar Threats

Site Security Check

Is kernel part of your stack?

CVE-2026-31507 is rated CVSS 7.8 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.