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.
Metrics
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:HAffected software
| Vendor | Product | Versions |
|---|---|---|
| Linux | Linux | >= 9b65b17db72313b7a4fe9bc9502928c88be57986, < 47f3860c4931175f112f28dcac66eacca9b1040f; >= 9b65b17db72313b7a4fe9bc9502928c88be57986, < f8d9d938514f46c4892aff6bfe32f425e84d81cc |
| Linux | Linux | 5.16 |
References
- https://git.kernel.org/stable/c/47f3860c4931175f112f28dcac66eacca9b1040fPatch
- https://git.kernel.org/stable/c/f8d9d938514f46c4892aff6bfe32f425e84d81ccPatch
- https://git.kernel.org/stable/c/47f3860c4931175f112f28dcac66eacca9b1040fPatch
- https://git.kernel.org/stable/c/f8d9d938514f46c4892aff6bfe32f425e84d81ccPatch
Timeline
- Published
- Jul 16, 2024
- Last modified
- Jun 17, 2026
- NVD status
- Analyzed