Bug 2298158 (CVE-2022-48819) - CVE-2022-48819 kernel: tcp: take care of mixed splice()/sendmsg(MSG_ZEROCOPY) case
Summary: CVE-2022-48819 kernel: tcp: take care of mixed splice()/sendmsg(MSG_ZEROCOPY)...
Keywords:
Status: NEW
Alias: CVE-2022-48819
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Product Security DevOps Team
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2024-07-16 12:47 UTC by OSIDB Bzimport
Modified: 2025-05-22 13:01 UTC (History)
4 users (show)

Fixed In Version: kernel 5.16.10, kernel 5.17
Clone Of:
Environment:
Last Closed:
Embargoed:


Attachments (Terms of Use)

Description OSIDB Bzimport 2024-07-16 12:47:48 UTC
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.


Note You need to log in before you can comment on or make changes to this bug.