Skip to content
CVE PROGRAM SOURCE RECORDUnscored

CVE-2022-48819

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

Description

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.

Affected products

Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.

Linux Linux

Default version status: unaffected

  • 9b65b17db72313b7a4fe9bc9502928c88be57986 to < 47f3860c4931175f112f28dcac66eacca9b1040faffected
  • 9b65b17db72313b7a4fe9bc9502928c88be57986 to < f8d9d938514f46c4892aff6bfe32f425e84d81ccaffected

Linux Linux

Default version status: affected

  • 5.16affected
  • 0 to < 5.16unaffected
  • 5.16.10 to ≤ 5.16.*unaffected
  • 5.17 to ≤ *unaffected

References