CVE-2022-48819

tcp: take care of mixed splice()/sendmsg(MSG_ZEROCOPY) case

published July 16, 2024

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

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

tcp: take care of mixed splice()/sendmsg(MSG_ZEROCOPY) case

syzbot found that mixing sendpage() and sendmsg(MSG_ZEROCOPY)

calls over the same TCP socket would again trigger the

infamous warning in inet_sock_destruct()

WARN_ON(sk_forward_alloc_get(sk));

While Talal took into account a mix of regular copied data

and MSG_ZEROCOPY one in the same skb, the sendpage() path

has been forgotten.

We want the charging to happen for sendpage(), because

pages could be coming from a pipe. What is missing is the

downgrading of pure zerocopy status to make sure

sk_forward_alloc will stay synced.

Add tcp_downgrade_zcopy_pure() helper so that we can

use it from the two callers.

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00231 · 13.2th percentile
Published
2024-07-16T11:44Z
EPSS history
Timeline
  • 16 JUL 11:44Z
    tcp: take care of mixed splice()/sendmsg(MSG_ZEROCOPY) case
    cvelistv5