In the Linux kernel, the following vulnerability has been resolved:
bpf: fix ktls panic with sockmap
[ 2172.936997] ------------[ cut here ]------------ [ 2172.936999] kernel BUG at lib/iov_iter.c:629! ...... [ 2172.944996] PKRU: 55555554 [ 2172.945155] Call Trace: [ 2172.945299] <TASK> [ 2172.945428] ? die+0x36/0x90 [ 2172.945601] ? do_trap+0xdd/0x100 [ 2172.945795] ? iov_iter_revert+0x178/0x180 [ 2172.946031] ? iov_iter_revert+0x178/0x180 [ 2172.946267] ? do_error_trap+0x7d/0x110 [ 2172.946499] ? iov_iter_revert+0x178/0x180 [ 2172.946736] ? exc_invalid_op+0x50/0x70 [ 2172.946961] ? iov_iter_revert+0x178/0x180 [ 2172.947197] ? asm_exc_invalid_op+0x1a/0x20 [ 2172.947446] ? iov_iter_revert+0x178/0x180 [ 2172.947683] ? iov_iter_revert+0x5c/0x180 [ 2172.947913] tls_sw_sendmsg_locked.isra.0+0x794/0x840 [ 2172.948206] tls_sw_sendmsg+0x52/0x80 [ 2172.948420] ? inet_sendmsg+0x1f/0x70 [ 2172.948634] __sys_sendto+0x1cd/0x200 [ 2172.948848] ? find_held_lock+0x2b/0x80 [ 2172.949072] ? syscall_trace_enter+0x140/0x270 [ 2172.949330] ? __lock_release.isra.0+0x5e/0x170 [ 2172.949595] ? find_held_lock+0x2b/0x80 [ 2172.949817] ? syscall_trace_enter+0x140/0x270 [ 2172.950211] ? lockdep_hardirqs_on_prepare+0xda/0x190 [ 2172.950632] ? ktime_get_coarse_real_ts64+0xc2/0xd0 [ 2172.951036] __x64_sys_sendto+0x24/0x30 [ 2172.951382] do_syscall_64+0x90/0x170 ......
After calling bpf_exec_tx_verdict(), the size of msg_pl->sg may increase, e.g., when the BPF program executes bpf_msg_push_data().
If the BPF program sets cork_bytes and sg.size is smaller than cork_bytes, it will return -ENOSPC and attempt to roll back to the non-zero copy logic. However, during rollback, msg->msg_iter is reset, but since msg_pl->sg.size has been increased, subsequent executions will exceed the actual size of msg_iter. ''' iov_iter_revert(&msg->msg_iter, msg_pl->sg.size - orig_size); '''
The changes in this commit are based on the following considerations:
1. When cork_bytes is set, rolling back to non-zero copy logic is pointless and can directly go to zero-copy logic.
2. We can not calculate the correct number of bytes to revert msg_iter.
Assume the original data is "abcdefgh" (8 bytes), and after 3 pushes by the BPF program, it becomes 11-byte data: "abc?de?fgh?". Then, we set cork_bytes to 6, which means the first 6 bytes have been processed, and the remaining 5 bytes "?fgh?" will be cached until the length meets the cork_bytes requirement.
However, some data in "?fgh?" is not within 'sg->msg_iter' (but in msg_pl instead), especially the data "?" we pushed.
So it doesn't seem as simple as just reverting through an offset of msg_iter.
3. For non-TLS sockets in tcp_bpf_sendmsg, when a "cork" situation occurs, the user-space send() doesn't return an error, and the returned length is the same as the input length parameter, even if some data is cached.
Additionally, I saw that the current non-zero-copy logic for handling corking is written as: ''' line 1177 else if (ret != -EAGAIN) { if (ret == -ENOSPC) ret = 0; goto send_end; '''
So it's ok to just return 'copied' without error when a "cork" situation occurs.
CVSS Details
- CVSS 3.1 Base Score: 7.8
- CVSS 3.1 Vector: (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Alma_linux | — | Upgrade kernel-toolsUpgrade kernel-develUpgrade kernel-rt-debugUpgrade kernel-rt-debug-modules-coreUpgrade kernel-rt-develUpgrade kernel-uki-virtUpgrade kernel-zfcpdump-modules-extraUpgrade python3-perfUpgrade kernel-64k-debug-modulesUpgrade kernel-debugUpgrade kernel-debug-uki-virtUpgrade kernel-rt-debug-modules-extraUpgrade kernel-rt-64k-debug-develUpgrade kernel-tools-libs-develUpgrade kernel-64k-modules-coreUpgrade kernel-rt-modulesUpgrade kernel-rt-coreUpgrade rvUpgrade kernel-rt-64k-debug-modules-coreUpgrade kernel-devel-matchedUpgrade kernel-64k-debug-devel-matchedUpgrade libperfUpgrade kernel-64k-debug-modules-coreUpgrade kernel-64k-debug-develUpgrade kernel-debug-coreUpgrade kernel-rt-64k-debug-coreUpgrade kernel-rt-64k-modules-extraUpgrade rtlaUpgrade kernel-64k-modules-extraUpgrade kernel-rt-64kUpgrade kernel-modulesUpgrade kernel-zfcpdump-devel-matchedUpgrade perfUpgrade kernel-rt-64k-modulesUpgrade kernel-debug-develUpgrade kernel-docUpgrade kernel-rt-debug-develUpgrade kernel-tools-libsUpgrade kernel-rt-modules-extraUpgrade kernel-zfcpdump-develUpgrade kernel-debug-modulesUpgrade kernelUpgrade kernel-zfcpdump-modules-coreUpgrade kernel-debug-devel-matchedUpgrade kernel-64k-develUpgrade kernel-rt-debug-coreUpgrade kernel-debug-modules-extraUpgrade kernel-rtUpgrade kernel-rt-64k-modules-coreUpgrade kernel-64kUpgrade kernel-64k-devel-matchedUpgrade kernel-zfcpdump-modulesUpgrade kernel-rt-64k-debug-modulesUpgrade kernel-abi-stablelistsUpgrade kernel-headersUpgrade kernel-64k-debugUpgrade kernel-rt-64k-coreUpgrade kernel-64k-modulesUpgrade kernel-rt-modules-coreUpgrade kernel-debug-modules-coreUpgrade kernel-zfcpdump-coreUpgrade kernel-rt-debug-modulesUpgrade kernel-rt-64k-debugUpgrade kernel-64k-coreUpgrade kernel-rt-64k-develUpgrade kernel-zfcpdumpUpgrade kernel-64k-debug-modules-extraUpgrade kernel-uki-virt-addonsUpgrade kernel-cross-headersUpgrade kernel-modules-extraUpgrade kernel-modules-coreUpgrade kernel-rt-64k-debug-modules-extraUpgrade kernel-64k-debug-coreUpgrade kernel-core | Jun 8, 2026 | May 19, 2026 |
| Amazon_linux_2023 | — | Upgrade kernel-modules-extra-commonUpgrade kernel6.12Upgrade perf-debuginfoUpgrade kernel-debuginfoUpgrade kernel-headersUpgrade kernel6.12-debuginfoUpgrade bpftool-debuginfoUpgrade kernel-libbpf-develUpgrade python3-perf6.12-debuginfoUpgrade kernel-libbpf-staticUpgrade kernel6.12-modules-extraUpgrade perf6.12Upgrade kernel-debuginfo-common-x86_64Upgrade kernelUpgrade kernel-livepatch-6.1.144-170.251Upgrade kernel6.12-debuginfo-common-aarch64Upgrade kernel-modules-extraUpgrade bpftoolUpgrade kernel-develUpgrade kernel-livepatch-6.12.35-55.103Upgrade python3-perf-debuginfoUpgrade kernel-tools-debuginfoUpgrade python3-perfUpgrade kernel-libbpfUpgrade perf6.12-debuginfoUpgrade kernel-libbpf-debuginfoUpgrade kernel-toolsUpgrade python3-perf6.12Upgrade kernel6.12-debuginfo-common-x86_64Upgrade kernel-debuginfo-common-aarch64Upgrade perfUpgrade kernel-tools-devel | Sep 9, 2025 | Jul 3, 2025 |
| Debian | — | Upgrade linuxUpgrade linux-6.1 | Jul 4, 2025 | Jul 4, 2025 |
| Huawei Euleros 2_0_sp11 | — | Upgrade python3-perfUpgrade kernel-abi-stablelistsUpgrade kernel-tools-libsUpgrade kernelUpgrade kernel-toolsUpgrade bpftool | Oct 14, 2025 | Oct 10, 2025 |
| Huawei Euleros 2_0_sp12 | — | Upgrade kernel-toolsUpgrade python3-perfUpgrade kernel-tools-libsUpgrade bpftoolUpgrade kernel-abi-stablelistsUpgrade kernel | Nov 12, 2025 | Oct 10, 2025 |
| Huawei Euleros 2_0_sp13 | — | Upgrade python3-perfUpgrade bpftoolUpgrade kernel-tools-libsUpgrade kernel-toolsUpgrade kernel-abi-stablelistsUpgrade kernel | Oct 24, 2025 | Oct 10, 2025 |
| Redhat_linux | — | Upgrade kernel-rtNo solution existsUpgrade kernel | Jul 9, 2025 | Jul 3, 2025 |
| Suse | — | Upgrade dtb-socionextUpgrade dtb-caviumUpgrade kernel-rt-extraUpgrade kernel-azure-extraUpgrade dtb-amazonUpgrade dtb-marvellUpgrade dtb-exynosUpgrade kselftests-kmp-64kbUpgrade kselftests-kmp-azureUpgrade kernel-rt-optionalUpgrade kernel-obs-buildUpgrade kernel-rt_debugUpgrade kernel-sourceUpgrade kernel-rt_debug-develUpgrade dtb-sprdUpgrade kernel-azureUpgrade kernel-docs-htmlUpgrade kernel-azure-develUpgrade dtb-nvidiaUpgrade gfs2-kmp-azureUpgrade kernel-kvmsmall-vdsoUpgrade kernel-debug-vdsoUpgrade ocfs2-kmp-defaultUpgrade ocfs2-kmp-64kbUpgrade kernel-64kb-extraUpgrade dtb-appleUpgrade kernel-source-rtUpgrade dlm-kmp-rtUpgrade dtb-broadcomUpgrade kernel-rtUpgrade cluster-md-kmp-64kbUpgrade dtb-freescaleUpgrade kernel-rt-vdsoUpgrade kernel-azure-vdsoUpgrade kernel-default-develUpgrade kernel-default-manUpgrade kernel-source-vanillaUpgrade kernel-default-livepatch-develUpgrade kernel-default-vdsoUpgrade dtb-allwinnerUpgrade kernel-azure-optionalUpgrade dtb-lgUpgrade kernel-source-azureUpgrade dlm-kmp-64kbUpgrade dtb-alteraUpgrade gfs2-kmp-defaultUpgrade kernel-default-livepatchUpgrade kernel-64kbUpgrade kernel-default-baseUpgrade reiserfs-kmp-64kbUpgrade kernel-default-extraUpgrade kernel-syms-rtUpgrade dtb-amdUpgrade dlm-kmp-azureUpgrade reiserfs-kmp-rtUpgrade kselftests-kmp-defaultUpgrade ocfs2-kmp-azureUpgrade kernel-symsUpgrade kernel-macrosUpgrade kernel-rt-develUpgrade kernel-kvmsmallUpgrade kernel-devel-azureUpgrade dtb-rockchipUpgrade cluster-md-kmp-rtUpgrade kernel-kvmsmall-develUpgrade kernel-debug-develUpgrade reiserfs-kmp-azureUpgrade ocfs2-kmp-rtUpgrade dtb-mediatekUpgrade dtb-amlogicUpgrade kernel-obs-qaUpgrade cluster-md-kmp-azureUpgrade kernel-rt_debug-vdsoUpgrade kernel-docsUpgrade kernel-devel-rtUpgrade kernel-default-optionalUpgrade kernel-debugUpgrade kernel-64kb-optionalUpgrade dtb-xilinxUpgrade dtb-apmUpgrade kselftests-kmp-rtUpgrade reiserfs-kmp-defaultUpgrade kernel-zfcpdumpUpgrade gfs2-kmp-64kbUpgrade gfs2-kmp-rtUpgrade dlm-kmp-defaultUpgrade cluster-md-kmp-defaultUpgrade kernel-develUpgrade dtb-renesasUpgrade kernel-64kb-develUpgrade kernel-syms-azureUpgrade kernel-defaultUpgrade dtb-qcomUpgrade kernel-rt-livepatch-develUpgrade kernel-default-base-rebuildUpgrade dtb-hisiliconUpgrade dtb-arm | Dec 5, 2025 | Aug 18, 2025 |
| Ubuntu | — | Upgrade linux-image-6.14.0-1013-awsUpgrade linux-image-6.14.0-1016-gcp-64kUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-6.8.0-1047-gcpUpgrade linux-image-6.8.0-100-genericUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-virtual-hwe-22.04Upgrade linux-image-realtime-6.14Upgrade linux-image-xilinx-6.8Upgrade linux-image-raspi-realtimeUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-6.14.0-1013-oracle-64kUpgrade linux-image-6.8.0-1043-gkeUpgrade linux-image-fips-6.8Upgrade linux-image-oracle-lts-24.04Upgrade linux-image-6.8.0-100-lowlatency-64kUpgrade linux-image-oem-22.04aUpgrade linux-image-oracle-64k-6.8Upgrade linux-image-raspi-realtime-6.8Upgrade linux-image-6.8.0-1051-azureUpgrade linux-image-nvidia-lowlatency-6.8Upgrade linux-image-gke-64k-6.8Upgrade linux-image-gcp-64kUpgrade linux-image-gcpUpgrade linux-image-oem-22.04bUpgrade linux-image-generic-6.14Upgrade linux-image-realtime-hwe-22.04Upgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-oem-22.04Upgrade linux-image-generic-hwe-22.04Upgrade linux-image-lowlatency-64kUpgrade linux-image-generic-6.8Upgrade linux-image-oracle-64k-6.14Upgrade linux-image-6.14.0-1012-realtimeUpgrade linux-image-intel-iot-realtimeUpgrade linux-image-gcp-64k-6.14Upgrade linux-image-oem-22.04cUpgrade linux-image-intel-iotgUpgrade linux-image-aws-6.8Upgrade linux-image-6.8.0-1047-raspiUpgrade linux-image-6.8.0-1046-azureUpgrade linux-image-6.8.0-1043-oracleUpgrade linux-image-raspi-6.8Upgrade linux-image-raspiUpgrade linux-image-6.14.0-1016-gcpUpgrade linux-image-gkeUpgrade linux-image-aws-64k-6.14Upgrade linux-image-oracle-64kUpgrade linux-image-gkeopUpgrade linux-image-generic-64kUpgrade linux-image-azureUpgrade linux-image-6.8.0-1046-awsUpgrade linux-image-6.8.0-100-fipsUpgrade linux-image-virtual-6.14Upgrade linux-image-aws-lts-24.04Upgrade linux-image-aws-64kUpgrade linux-image-oem-24.04aUpgrade linux-image-raspi-6.14Upgrade linux-image-nvidiaUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-azure-6.14Upgrade linux-image-6.8.0-1023-xilinxUpgrade linux-image-6.8.0-1046-aws-fipsUpgrade linux-image-azure-6.8Upgrade linux-image-xilinxUpgrade linux-image-gke-6.8Upgrade linux-image-realtime-hwe-24.04Upgrade linux-image-virtual-6.8Upgrade linux-image-ibmUpgrade linux-image-oem-22.04dUpgrade linux-image-nvidia-64kUpgrade linux-image-lowlatencyUpgrade linux-image-gkeop-6.8Upgrade linux-image-genericUpgrade linux-image-azure-lts-24.04Upgrade linux-image-azure-fips-6.8Upgrade linux-image-6.8.0-1046-azure-fipsUpgrade linux-image-6.8.0-1044-ibmUpgrade linux-image-6.14.0-32-generic-64kUpgrade linux-image-oracle-6.8Upgrade linux-image-realtime-6.8.1Upgrade linux-image-gcp-6.14Upgrade linux-image-6.14.0-1013-aws-64kUpgrade linux-image-oem-24.04Upgrade linux-image-ibm-classicUpgrade linux-image-gcp-fips-6.8Upgrade linux-image-gcp-fipsUpgrade linux-image-aws-6.14Upgrade linux-image-6.8.0-1046-nvidia-lowlatency-64kUpgrade linux-image-6.8.0-1030-gkeopUpgrade linux-image-oem-6.14Upgrade linux-image-aws-64k-6.8Upgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-nvidia-lowlatency-64k-6.8Upgrade linux-image-oracleUpgrade linux-image-virtualUpgrade linux-image-aws-fips-6.8Upgrade linux-image-generic-lpaeUpgrade linux-image-nvidia-6.8Upgrade linux-image-nvidia-lowlatencyUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-6.14.0-1012-oemUpgrade linux-image-gcp-lts-24.04Upgrade linux-image-6.8.0-100-lowlatencyUpgrade linux-image-6.14.0-1014-raspiUpgrade linux-image-6.8.0-1047-gcp-64kUpgrade linux-image-oracle-6.14Upgrade linux-image-6.8.0-1043-oracle-64kUpgrade linux-image-6.14.0-32-genericUpgrade linux-image-6.8.1-1041-realtimeUpgrade linux-image-azure-fipsUpgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-ibm-6.8Upgrade linux-image-fipsUpgrade linux-image-realtimeUpgrade linux-image-6.8.0-1047-gcp-fipsUpgrade linux-image-oem-24.04cUpgrade linux-image-lowlatency-64k-6.8Upgrade linux-image-kvmUpgrade linux-image-oem-24.04bUpgrade linux-image-gcp-64k-6.8Upgrade linux-image-6.8.0-2037-raspi-realtimeUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-6.14.0-1013-oracleUpgrade linux-image-6.8.0-1046-aws-64kUpgrade linux-image-6.14.0-1012-azureUpgrade linux-image-6.8.0-1046-nvidiaUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-aws-fipsUpgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-generic-64k-6.8Upgrade linux-image-gke-64kUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-generic-64k-6.14Upgrade linux-image-6.8.0-1043-gke-64kUpgrade linux-image-6.8.0-1046-nvidia-64kUpgrade linux-image-awsUpgrade linux-image-gcp-6.8Upgrade linux-image-ibm-lts-24.04Upgrade linux-image-6.8.0-1046-nvidia-lowlatencyUpgrade linux-image-lowlatency-6.8Upgrade linux-image-6.8.0-100-generic-64kUpgrade linux-image-aws-64k-lts-24.04 | Jul 7, 2025 | Jul 3, 2025 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Jul 16, 2025 | Jul 3, 2025 |
Prioritise with Active Threat Intelligence
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub