In the Linux kernel, the following vulnerability has been resolved:
net: tls, fix WARNIING in __sk_msg_free
A splice with MSG_SPLICE_PAGES will cause tls code to use the tls_sw_sendmsg_splice path in the TLS sendmsg code to move the user provided pages from the msg into the msg_pl. This will loop over the msg until msg_pl is full, checked by sk_msg_full(msg_pl). The user can also set the MORE flag to hint stack to delay sending until receiving more pages and ideally a full buffer.
If the user adds more pages to the msg than can fit in the msg_pl scatterlist (MAX_MSG_FRAGS) we should ignore the MORE flag and send the buffer anyways.
What actually happens though is we abort the msg to msg_pl scatterlist setup and then because we forget to set full record indicating we can no longer consume data without a send we fallthrough to the continue path which will check if msg_data_left(msg) has more bytes to send and then attempts to fit them in the already full msg_pl. Then next iteration of sender doing send will encounter a full msg_pl and throw the warning in the syzbot report.
To fix simply check if we have a full_record in splice code path and if not send the msg regardless of MORE flag.
| Name | Vendor | Start Version | End Version | 
|---|---|---|---|
| Linux_kernel | Linux | 6.5 (including) | 6.6.14 (excluding) | 
| Linux_kernel | Linux | 6.7 (including) | 6.7.2 (excluding) | 
| Linux | Ubuntu | mantic | * | 
| Linux | Ubuntu | upstream | * | 
| Linux-allwinner-5.19 | Ubuntu | jammy | * | 
| Linux-allwinner-5.19 | Ubuntu | upstream | * | 
| Linux-aws | Ubuntu | mantic | * | 
| Linux-aws | Ubuntu | upstream | * | 
| Linux-aws-5.0 | Ubuntu | bionic | * | 
| Linux-aws-5.0 | Ubuntu | esm-infra/bionic | * | 
| Linux-aws-5.0 | Ubuntu | upstream | * | 
| Linux-aws-5.11 | Ubuntu | esm-infra/focal | * | 
| Linux-aws-5.11 | Ubuntu | focal | * | 
| Linux-aws-5.11 | Ubuntu | upstream | * | 
| Linux-aws-5.13 | Ubuntu | esm-infra/focal | * | 
| Linux-aws-5.13 | Ubuntu | focal | * | 
| Linux-aws-5.13 | Ubuntu | upstream | * | 
| Linux-aws-5.15 | Ubuntu | upstream | * | 
| Linux-aws-5.19 | Ubuntu | jammy | * | 
| Linux-aws-5.19 | Ubuntu | upstream | * | 
| Linux-aws-5.3 | Ubuntu | bionic | * | 
| Linux-aws-5.3 | Ubuntu | esm-infra/bionic | * | 
| Linux-aws-5.3 | Ubuntu | upstream | * | 
| Linux-aws-5.4 | Ubuntu | upstream | * | 
| Linux-aws-5.8 | Ubuntu | esm-infra/focal | * | 
| Linux-aws-5.8 | Ubuntu | focal | * | 
| Linux-aws-5.8 | Ubuntu | upstream | * | 
| Linux-aws-6.2 | Ubuntu | jammy | * | 
| Linux-aws-6.2 | Ubuntu | upstream | * | 
| Linux-aws-6.5 | Ubuntu | jammy | * | 
| Linux-aws-6.5 | Ubuntu | upstream | * | 
| Linux-aws-6.8 | Ubuntu | upstream | * | 
| Linux-aws-fips | Ubuntu | trusty | * | 
| Linux-aws-fips | Ubuntu | upstream | * | 
| Linux-aws-fips | Ubuntu | xenial | * | 
| Linux-aws-hwe | Ubuntu | upstream | * | 
| Linux-azure | Ubuntu | bionic | * | 
| Linux-azure | Ubuntu | esm-infra/bionic | * | 
| Linux-azure | Ubuntu | mantic | * | 
| Linux-azure | Ubuntu | upstream | * | 
| Linux-azure-4.15 | Ubuntu | upstream | * | 
| Linux-azure-5.11 | Ubuntu | esm-infra/focal | * | 
| Linux-azure-5.11 | Ubuntu | focal | * | 
| Linux-azure-5.11 | Ubuntu | upstream | * | 
| Linux-azure-5.13 | Ubuntu | esm-infra/focal | * | 
| Linux-azure-5.13 | Ubuntu | focal | * | 
| Linux-azure-5.13 | Ubuntu | upstream | * | 
| Linux-azure-5.15 | Ubuntu | upstream | * | 
| Linux-azure-5.19 | Ubuntu | jammy | * | 
| Linux-azure-5.19 | Ubuntu | upstream | * | 
| Linux-azure-5.3 | Ubuntu | bionic | * | 
| Linux-azure-5.3 | Ubuntu | esm-infra/bionic | * | 
| Linux-azure-5.3 | Ubuntu | upstream | * | 
| Linux-azure-5.4 | Ubuntu | upstream | * | 
| Linux-azure-5.8 | Ubuntu | esm-infra/focal | * | 
| Linux-azure-5.8 | Ubuntu | focal | * | 
| Linux-azure-5.8 | Ubuntu | upstream | * | 
| Linux-azure-6.2 | Ubuntu | jammy | * | 
| Linux-azure-6.2 | Ubuntu | upstream | * | 
| Linux-azure-6.5 | Ubuntu | jammy | * | 
| Linux-azure-6.5 | Ubuntu | upstream | * | 
| Linux-azure-6.8 | Ubuntu | upstream | * | 
| Linux-azure-edge | Ubuntu | bionic | * | 
| Linux-azure-edge | Ubuntu | esm-infra/bionic | * | 
| Linux-azure-edge | Ubuntu | upstream | * | 
| Linux-azure-fde | Ubuntu | esm-infra/focal | * | 
| Linux-azure-fde | Ubuntu | focal | * | 
| Linux-azure-fde | Ubuntu | upstream | * | 
| Linux-azure-fde-5.15 | Ubuntu | upstream | * | 
| Linux-azure-fde-5.19 | Ubuntu | jammy | * | 
| Linux-azure-fde-5.19 | Ubuntu | upstream | * | 
| Linux-azure-fde-6.2 | Ubuntu | jammy | * | 
| Linux-azure-fde-6.2 | Ubuntu | upstream | * | 
| Linux-azure-fips | Ubuntu | trusty | * | 
| Linux-azure-fips | Ubuntu | upstream | * | 
| Linux-azure-fips | Ubuntu | xenial | * | 
| Linux-bluefield | Ubuntu | upstream | * | 
| Linux-fips | Ubuntu | upstream | * | 
| Linux-gcp | Ubuntu | bionic | * | 
| Linux-gcp | Ubuntu | esm-infra/bionic | * | 
| Linux-gcp | Ubuntu | mantic | * | 
| Linux-gcp | Ubuntu | upstream | * | 
| Linux-gcp-4.15 | Ubuntu | upstream | * | 
| Linux-gcp-5.11 | Ubuntu | esm-infra/focal | * | 
| Linux-gcp-5.11 | Ubuntu | focal | * | 
| Linux-gcp-5.11 | Ubuntu | upstream | * | 
| Linux-gcp-5.13 | Ubuntu | esm-infra/focal | * | 
| Linux-gcp-5.13 | Ubuntu | focal | * | 
| Linux-gcp-5.13 | Ubuntu | upstream | * | 
| Linux-gcp-5.15 | Ubuntu | upstream | * | 
| Linux-gcp-5.19 | Ubuntu | jammy | * | 
| Linux-gcp-5.19 | Ubuntu | upstream | * | 
| Linux-gcp-5.3 | Ubuntu | bionic | * | 
| Linux-gcp-5.3 | Ubuntu | esm-infra/bionic | * | 
| Linux-gcp-5.3 | Ubuntu | upstream | * | 
| Linux-gcp-5.4 | Ubuntu | upstream | * | 
| Linux-gcp-5.8 | Ubuntu | esm-infra/focal | * | 
| Linux-gcp-5.8 | Ubuntu | focal | * | 
| Linux-gcp-5.8 | Ubuntu | upstream | * | 
| Linux-gcp-6.2 | Ubuntu | jammy | * | 
| Linux-gcp-6.2 | Ubuntu | upstream | * | 
| Linux-gcp-6.5 | Ubuntu | jammy | * | 
| Linux-gcp-6.5 | Ubuntu | upstream | * | 
| Linux-gcp-6.8 | Ubuntu | upstream | * | 
| Linux-gcp-fips | Ubuntu | trusty | * | 
| Linux-gcp-fips | Ubuntu | upstream | * | 
| Linux-gcp-fips | Ubuntu | xenial | * | 
| Linux-gke | Ubuntu | esm-infra/focal | * | 
| Linux-gke | Ubuntu | focal | * | 
| Linux-gke | Ubuntu | upstream | * | 
| Linux-gke | Ubuntu | xenial | * | 
| Linux-gke-4.15 | Ubuntu | bionic | * | 
| Linux-gke-4.15 | Ubuntu | esm-infra/bionic | * | 
| Linux-gke-4.15 | Ubuntu | upstream | * | 
| Linux-gke-5.15 | Ubuntu | esm-infra/focal | * | 
| Linux-gke-5.15 | Ubuntu | focal | * | 
| Linux-gke-5.15 | Ubuntu | upstream | * | 
| Linux-gke-5.4 | Ubuntu | bionic | * | 
| Linux-gke-5.4 | Ubuntu | esm-infra/bionic | * | 
| Linux-gke-5.4 | Ubuntu | upstream | * | 
| Linux-gkeop | Ubuntu | upstream | * | 
| Linux-gkeop-5.15 | Ubuntu | upstream | * | 
| Linux-gkeop-5.4 | Ubuntu | bionic | * | 
| Linux-gkeop-5.4 | Ubuntu | esm-infra/bionic | * | 
| Linux-gkeop-5.4 | Ubuntu | upstream | * | 
| Linux-hwe | Ubuntu | bionic | * | 
| Linux-hwe | Ubuntu | esm-infra/bionic | * | 
| Linux-hwe | Ubuntu | upstream | * | 
| Linux-hwe-5.11 | Ubuntu | esm-infra/focal | * | 
| Linux-hwe-5.11 | Ubuntu | focal | * | 
| Linux-hwe-5.11 | Ubuntu | upstream | * | 
| Linux-hwe-5.13 | Ubuntu | esm-infra/focal | * | 
| Linux-hwe-5.13 | Ubuntu | focal | * | 
| Linux-hwe-5.13 | Ubuntu | upstream | * | 
| Linux-hwe-5.15 | Ubuntu | upstream | * | 
| Linux-hwe-5.19 | Ubuntu | jammy | * | 
| Linux-hwe-5.19 | Ubuntu | upstream | * | 
| Linux-hwe-5.4 | Ubuntu | upstream | * | 
| Linux-hwe-5.8 | Ubuntu | esm-infra/focal | * | 
| Linux-hwe-5.8 | Ubuntu | focal | * | 
| Linux-hwe-5.8 | Ubuntu | upstream | * | 
| Linux-hwe-6.2 | Ubuntu | jammy | * | 
| Linux-hwe-6.2 | Ubuntu | upstream | * | 
| Linux-hwe-6.5 | Ubuntu | jammy | * | 
| Linux-hwe-6.5 | Ubuntu | upstream | * | 
| Linux-hwe-6.8 | Ubuntu | upstream | * | 
| Linux-hwe-edge | Ubuntu | esm-infra/xenial | * | 
| Linux-hwe-edge | Ubuntu | upstream | * | 
| Linux-hwe-edge | Ubuntu | xenial | * | 
| Linux-ibm | Ubuntu | mantic | * | 
| Linux-ibm | Ubuntu | upstream | * | 
| Linux-ibm-5.15 | Ubuntu | upstream | * | 
| Linux-ibm-5.4 | Ubuntu | upstream | * | 
| Linux-intel | Ubuntu | upstream | * | 
| Linux-intel-5.13 | Ubuntu | esm-infra/focal | * | 
| Linux-intel-5.13 | Ubuntu | focal | * | 
| Linux-intel-5.13 | Ubuntu | upstream | * | 
| Linux-intel-iot-realtime | Ubuntu | jammy | * | 
| Linux-intel-iot-realtime | Ubuntu | upstream | * | 
| Linux-intel-iotg | Ubuntu | upstream | * | 
| Linux-intel-iotg-5.15 | Ubuntu | upstream | * | 
| Linux-iot | Ubuntu | upstream | * | 
| Linux-kvm | Ubuntu | upstream | * | 
| Linux-laptop | Ubuntu | mantic | * | 
| Linux-laptop | Ubuntu | upstream | * | 
| Linux-lowlatency | Ubuntu | mantic | * | 
| Linux-lowlatency | Ubuntu | upstream | * | 
| Linux-lowlatency-hwe-5.15 | Ubuntu | upstream | * | 
| Linux-lowlatency-hwe-5.19 | Ubuntu | jammy | * | 
| Linux-lowlatency-hwe-5.19 | Ubuntu | upstream | * | 
| Linux-lowlatency-hwe-6.2 | Ubuntu | jammy | * | 
| Linux-lowlatency-hwe-6.2 | Ubuntu | upstream | * | 
| Linux-lowlatency-hwe-6.5 | Ubuntu | jammy | * | 
| Linux-lowlatency-hwe-6.5 | Ubuntu | upstream | * | 
| Linux-lowlatency-hwe-6.8 | Ubuntu | upstream | * | 
| Linux-lts-xenial | Ubuntu | upstream | * | 
| Linux-nvidia | Ubuntu | upstream | * | 
| Linux-nvidia-6.2 | Ubuntu | jammy | * | 
| Linux-nvidia-6.2 | Ubuntu | upstream | * | 
| Linux-nvidia-6.5 | Ubuntu | jammy | * | 
| Linux-nvidia-6.5 | Ubuntu | upstream | * | 
| Linux-nvidia-6.8 | Ubuntu | upstream | * | 
| Linux-nvidia-lowlatency | Ubuntu | upstream | * | 
| Linux-oem | Ubuntu | bionic | * | 
| Linux-oem | Ubuntu | esm-infra/bionic | * | 
| Linux-oem | Ubuntu | upstream | * | 
| Linux-oem | Ubuntu | xenial | * | 
| Linux-oem-5.10 | Ubuntu | esm-infra/focal | * | 
| Linux-oem-5.10 | Ubuntu | focal | * | 
| Linux-oem-5.10 | Ubuntu | upstream | * | 
| Linux-oem-5.13 | Ubuntu | esm-infra/focal | * | 
| Linux-oem-5.13 | Ubuntu | focal | * | 
| Linux-oem-5.13 | Ubuntu | upstream | * | 
| Linux-oem-5.14 | Ubuntu | esm-infra/focal | * | 
| Linux-oem-5.14 | Ubuntu | focal | * | 
| Linux-oem-5.14 | Ubuntu | upstream | * | 
| Linux-oem-5.17 | Ubuntu | jammy | * | 
| Linux-oem-5.17 | Ubuntu | upstream | * | 
| Linux-oem-5.6 | Ubuntu | esm-infra/focal | * | 
| Linux-oem-5.6 | Ubuntu | focal | * | 
| Linux-oem-5.6 | Ubuntu | upstream | * | 
| Linux-oem-6.0 | Ubuntu | jammy | * | 
| Linux-oem-6.0 | Ubuntu | upstream | * | 
| Linux-oem-6.1 | Ubuntu | jammy | * | 
| Linux-oem-6.1 | Ubuntu | upstream | * | 
| Linux-oem-6.11 | Ubuntu | upstream | * | 
| Linux-oem-6.5 | Ubuntu | jammy | * | 
| Linux-oem-6.5 | Ubuntu | upstream | * | 
| Linux-oem-6.8 | Ubuntu | upstream | * | 
| Linux-oracle | Ubuntu | mantic | * | 
| Linux-oracle | Ubuntu | upstream | * | 
| Linux-oracle-5.0 | Ubuntu | bionic | * | 
| Linux-oracle-5.0 | Ubuntu | esm-infra/bionic | * | 
| Linux-oracle-5.0 | Ubuntu | upstream | * | 
| Linux-oracle-5.11 | Ubuntu | esm-infra/focal | * | 
| Linux-oracle-5.11 | Ubuntu | focal | * | 
| Linux-oracle-5.11 | Ubuntu | upstream | * | 
| Linux-oracle-5.13 | Ubuntu | esm-infra/focal | * | 
| Linux-oracle-5.13 | Ubuntu | focal | * | 
| Linux-oracle-5.13 | Ubuntu | upstream | * | 
| Linux-oracle-5.15 | Ubuntu | upstream | * | 
| Linux-oracle-5.3 | Ubuntu | bionic | * | 
| Linux-oracle-5.3 | Ubuntu | esm-infra/bionic | * | 
| Linux-oracle-5.3 | Ubuntu | upstream | * | 
| Linux-oracle-5.4 | Ubuntu | upstream | * | 
| Linux-oracle-5.8 | Ubuntu | esm-infra/focal | * | 
| Linux-oracle-5.8 | Ubuntu | focal | * | 
| Linux-oracle-5.8 | Ubuntu | upstream | * | 
| Linux-oracle-6.5 | Ubuntu | jammy | * | 
| Linux-oracle-6.5 | Ubuntu | upstream | * | 
| Linux-oracle-6.8 | Ubuntu | upstream | * | 
| Linux-raspi | Ubuntu | mantic | * | 
| Linux-raspi | Ubuntu | upstream | * | 
| Linux-raspi-5.4 | Ubuntu | upstream | * | 
| Linux-raspi-realtime | Ubuntu | noble | * | 
| Linux-raspi-realtime | Ubuntu | realtime/noble | * | 
| Linux-raspi-realtime | Ubuntu | upstream | * | 
| Linux-raspi2 | Ubuntu | bionic | * | 
| Linux-raspi2 | Ubuntu | esm-infra/focal | * | 
| Linux-raspi2 | Ubuntu | focal | * | 
| Linux-raspi2 | Ubuntu | upstream | * | 
| Linux-raspi2 | Ubuntu | xenial | * | 
| Linux-realtime | Ubuntu | jammy | * | 
| Linux-realtime | Ubuntu | upstream | * | 
| Linux-riscv | Ubuntu | esm-infra/focal | * | 
| Linux-riscv | Ubuntu | focal | * | 
| Linux-riscv | Ubuntu | jammy | * | 
| Linux-riscv | Ubuntu | mantic | * | 
| Linux-riscv | Ubuntu | upstream | * | 
| Linux-riscv-5.11 | Ubuntu | esm-infra/focal | * | 
| Linux-riscv-5.11 | Ubuntu | focal | * | 
| Linux-riscv-5.11 | Ubuntu | upstream | * | 
| Linux-riscv-5.15 | Ubuntu | upstream | * | 
| Linux-riscv-5.19 | Ubuntu | jammy | * | 
| Linux-riscv-5.19 | Ubuntu | upstream | * | 
| Linux-riscv-5.8 | Ubuntu | esm-infra/focal | * | 
| Linux-riscv-5.8 | Ubuntu | focal | * | 
| Linux-riscv-5.8 | Ubuntu | upstream | * | 
| Linux-riscv-6.5 | Ubuntu | jammy | * | 
| Linux-riscv-6.5 | Ubuntu | upstream | * | 
| Linux-riscv-6.8 | Ubuntu | upstream | * | 
| Linux-starfive | Ubuntu | mantic | * | 
| Linux-starfive | Ubuntu | upstream | * | 
| Linux-starfive-5.19 | Ubuntu | jammy | * | 
| Linux-starfive-5.19 | Ubuntu | upstream | * | 
| Linux-starfive-6.2 | Ubuntu | jammy | * | 
| Linux-starfive-6.2 | Ubuntu | upstream | * | 
| Linux-starfive-6.5 | Ubuntu | jammy | * | 
| Linux-starfive-6.5 | Ubuntu | upstream | * | 
| Linux-xilinx-zynqmp | Ubuntu | upstream | * |