Skip to main content

Boteraser | Website and Server Security Solutions

🛡️ CVE-2025-39758 — kernel

🔴 CVSS 9.8 — Critical ✅ No Known Exploit NVD
9.8
CVSS Score
0 Low4 Medium7 High9 Critical10

Description

RDMA/siw: Fix the sendmsg byte count in siw_tcp_sendpages

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

RDMA/siw: Fix the sendmsg byte count in siw_tcp_sendpages

Ever since commit c2ff29e99a76 ("siw: Inline do_tcp_sendpages()"),

we have been doing this:

static int siw_tcp_sendpages(struct socket *s, struct page **page, int offset,

size_t size)

[...]

/* Calculate the number of bytes we need to push, for this page

  • specifically */

size_t bytes = min_t(size_t, PAGE_SIZE - offset, size);

/* If we can't splice it, then copy it in, as normal */

if (!sendpage_ok(page[i]))

msg.msg_flags &= ~MSG_SPLICE_PAGES;

/* Set the bvec pointing to the page, with len $bytes */

bvec_set_page(&bvec, page[i], bytes, offset);

/* Set the iter to $size, aka the size of the whole sendpages (!!!) */

iov_iter_bvec(&msg.msg_iter, ITER_SOURCE, &bvec, 1, size);

try_page_again:

lock_sock(sk);

/* Sendmsg with $size size (!!!) */

rv = tcp_sendmsg_locked(sk, &msg, size);

This means we've been sending oversized iov_iters and tcp_sendmsg calls

for a while. This has a been a benign bug because sendpage_ok() always

returned true. With the recent slab allocator changes being slowly

introduced into next (that disallow sendpage on large kmalloc

allocations), we have recently hit out-of-bounds crashes, due to slight

differences in iov_iter behavior between the MSG_SPLICE_PAGES and

"regular" copy paths:

(MSG_SPLICE_PAGES)

skb_splice_from_iter

iov_iter_extract_pages

iov_iter_extract_bvec_pages

uses i->nr_segs to correctly stop in its tracks before OoB'ing everywhere

skb_splice_from_iter gets a "short" read

(!MSG_SPLICE_PAGES)

skb_copy_to_page_nocache copy=iov_iter_count

[...]

copy_from_iter

/* this doesn't help */

if (unlikely(iter->count < len))

len = iter->count;

iterate_bvec

... and we run off the bvecs

Fix this by properly setting the iov_iter's byte count, plus sending the

correct byte count to tcp_sendmsg_locked.

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 high, integrity high, availability high.

Affected software

CVE-2025-39758 is recorded against 2 packages.

  • kernel (from 6.16.0 up to 6.16.2)
  • linux-kernel (from 6.16 up to 6.16.2)

Timeline and source

Published on 11 September 2025 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

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-2025-39758 on other distributions

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

Details

Severity Critical
CVSS Score 9.8
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CWE N/A
Public Exploit ✅ No
Source NVD
Published 2025-09-11
Updated 2026-08-20
Modified 2026-08-12

Affected Packages

Software From version Fixed in
kernel 6.16.0 6.16.2
linux-kernel 6.16 6.16.2

Similar Threats

Exploit Protection

Are you running kernel?

CVE-2025-39758 carries CVSS 9.8 Critical rating. BotEraser checks your installation against this and other known CVE records, and blocks IPs associated with exploit activity.

Check My Site For CVE-2025-39758 →

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.