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.
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Alma_linux | — | Upgrade kernel-zfcpdump-coreUpgrade kernel-zfcpdump-develUpgrade kernel-rt-debug-modulesUpgrade kernel-rt-modules-coreUpgrade kernel-debug-modules-extraUpgrade kernel-debug-devel-matchedUpgrade kernel-headersUpgrade kernel-64k-coreUpgrade kernel-rt-64k-develUpgrade kernel-rt-modules-extraUpgrade kernel-64k-debugUpgrade kernel-64k-develUpgrade kernel-modules-extraUpgrade kernel-64k-debug-coreUpgrade kernelUpgrade kernel-zfcpdumpUpgrade kernel-tools-libsUpgrade kernel-rt-64k-modules-coreUpgrade kernel-rt-debug-coreUpgrade kernel-modules-coreUpgrade kernel-rt-64k-debugUpgrade kernel-rtUpgrade kernel-rt-64k-debug-modules-extraUpgrade kernel-debug-modulesUpgrade kernel-uki-virt-addonsUpgrade kernel-64kUpgrade kernel-zfcpdump-modulesUpgrade kernel-zfcpdump-modules-coreUpgrade kernel-coreUpgrade kernel-rt-debug-develUpgrade kernel-rt-64k-coreUpgrade kernel-cross-headersUpgrade kernel-abi-stablelistsUpgrade kernel-rt-64k-debug-modulesUpgrade kernel-64k-modulesUpgrade kernel-debug-modules-coreUpgrade kernel-64k-debug-modules-extraUpgrade kernel-64k-devel-matchedUpgrade kernel-rt-modulesUpgrade kernel-rt-develUpgrade kernel-64k-debug-modules-coreUpgrade kernel-docUpgrade kernel-rt-debug-modules-coreUpgrade kernel-64k-modules-extraUpgrade kernel-64k-debug-devel-matchedUpgrade libperfUpgrade kernel-64k-modules-coreUpgrade kernel-rt-64k-debug-develUpgrade kernel-rt-64k-debug-modules-coreUpgrade kernel-rt-64k-modules-extraUpgrade kernel-toolsUpgrade kernel-debugUpgrade kernel-rt-coreUpgrade rvUpgrade kernel-rt-debug-modules-extraUpgrade kernel-tools-libs-develUpgrade kernel-devel-matchedUpgrade rtlaUpgrade kernel-64k-debug-modulesUpgrade kernel-uki-virtUpgrade kernel-zfcpdump-modules-extraUpgrade kernel-64k-debug-develUpgrade kernel-rt-64kUpgrade kernel-debug-develUpgrade kernel-modulesUpgrade python3-perfUpgrade kernel-rt-64k-modulesUpgrade kernel-rt-debugUpgrade kernel-rt-64k-debug-coreUpgrade kernel-debug-uki-virtUpgrade kernel-zfcpdump-devel-matchedUpgrade perfUpgrade kernel-develUpgrade kernel-debug-core | Jun 8, 2026 | May 19, 2026 |
| Amazon_linux_2023 | — | Upgrade perf-debuginfoUpgrade kernel6.12-modules-extraUpgrade bpftool-debuginfoUpgrade kernel-livepatch-6.1.144-170.251Upgrade kernel-headersUpgrade kernel6.12-debuginfo-common-aarch64Upgrade kernel-libbpf-staticUpgrade python3-perf6.12-debuginfoUpgrade perf6.12Upgrade kernel-modules-extra-commonUpgrade kernel6.12Upgrade kernel-debuginfo-common-x86_64Upgrade kernel6.12-debuginfoUpgrade kernel-debuginfoUpgrade kernelUpgrade kernel-libbpf-develUpgrade python3-perfUpgrade kernel-modules-extraUpgrade perf6.12-debuginfoUpgrade kernel-tools-develUpgrade kernel-develUpgrade kernel-tools-debuginfoUpgrade kernel-toolsUpgrade kernel-libbpf-debuginfoUpgrade kernel-libbpfUpgrade kernel6.12-debuginfo-common-x86_64Upgrade python3-perf-debuginfoUpgrade kernel-livepatch-6.12.35-55.103Upgrade bpftoolUpgrade perfUpgrade kernel-debuginfo-common-aarch64Upgrade python3-perf6.12 | Sep 9, 2025 | Jul 3, 2025 |
| Debian | — | Upgrade linux-6.1Upgrade linux | Jul 4, 2025 | Jul 4, 2025 |
| Huawei Euleros 2_0_sp11 | — | Upgrade kernel-tools-libsUpgrade kernelUpgrade bpftoolUpgrade kernel-toolsUpgrade kernel-abi-stablelistsUpgrade python3-perf | Oct 14, 2025 | Oct 10, 2025 |
| Huawei Euleros 2_0_sp12 | — | Upgrade kernel-toolsUpgrade kernel-tools-libsUpgrade python3-perfUpgrade bpftoolUpgrade kernel-abi-stablelistsUpgrade kernel | Nov 12, 2025 | Oct 10, 2025 |
| Huawei Euleros 2_0_sp13 | — | Upgrade kernel-tools-libsUpgrade bpftoolUpgrade python3-perfUpgrade kernel-toolsUpgrade kernelUpgrade kernel-abi-stablelists | Oct 24, 2025 | Oct 10, 2025 |
| Oracle_linux | — | Upgrade kernel | Oct 22, 2026 | Jul 3, 2025 |
| Redhat_linux | — | Upgrade kernel-rtNo solution existsUpgrade kernel | Jul 9, 2025 | Jul 3, 2025 |
| Suse | — | Upgrade gfs2-kmp-defaultUpgrade ocfs2-kmp-64kbUpgrade kernel-sourceUpgrade dtb-caviumUpgrade dtb-lgUpgrade kernel-64kbUpgrade kernel-default-baseUpgrade kernel-azureUpgrade kernel-azure-develUpgrade dtb-sprdUpgrade kernel-kvmsmall-vdsoUpgrade kernel-default-livepatch-develUpgrade dtb-marvellUpgrade ocfs2-kmp-defaultUpgrade kernel-obs-buildUpgrade dtb-alteraUpgrade dtb-exynosUpgrade dlm-kmp-64kbUpgrade reiserfs-kmp-64kbUpgrade kernel-default-livepatchUpgrade kernel-source-azureUpgrade dtb-amazonUpgrade kernel-rt_debugUpgrade dtb-broadcomUpgrade kernel-source-rtUpgrade dlm-kmp-rtUpgrade kernel-64kb-extraUpgrade dtb-appleUpgrade dtb-allwinnerUpgrade kernel-azure-optionalUpgrade kernel-azure-vdsoUpgrade dtb-socionextUpgrade kernel-rtUpgrade kernel-source-vanillaUpgrade dtb-nvidiaUpgrade kernel-default-manUpgrade kselftests-kmp-azureUpgrade kernel-default-develUpgrade gfs2-kmp-azureUpgrade kernel-docs-htmlUpgrade kernel-azure-extraUpgrade kernel-rt-vdsoUpgrade dtb-freescaleUpgrade kernel-default-vdsoUpgrade kernel-rt_debug-develUpgrade kselftests-kmp-64kbUpgrade cluster-md-kmp-64kbUpgrade kernel-rt-extraUpgrade kernel-rt-optionalUpgrade kernel-debug-vdsoUpgrade dtb-hisiliconUpgrade dtb-rockchipUpgrade kernel-symsUpgrade reiserfs-kmp-rtUpgrade kernel-kvmsmall-develUpgrade kernel-macrosUpgrade kernel-default-extraUpgrade reiserfs-kmp-azureUpgrade kernel-obs-qaUpgrade kernel-debug-develUpgrade dtb-mediatekUpgrade dtb-amlogicUpgrade ocfs2-kmp-rtUpgrade kernel-develUpgrade dtb-amdUpgrade dlm-kmp-azureUpgrade ocfs2-kmp-azureUpgrade kselftests-kmp-defaultUpgrade kernel-default-base-rebuildUpgrade kernel-rt-livepatch-develUpgrade dtb-armUpgrade cluster-md-kmp-azureUpgrade kernel-syms-rtUpgrade kernel-rt_debug-vdsoUpgrade kernel-devel-rtUpgrade kernel-default-optionalUpgrade kernel-debugUpgrade dtb-xilinxUpgrade dtb-apmUpgrade kselftests-kmp-rtUpgrade kernel-64kb-optionalUpgrade kernel-docsUpgrade kernel-zfcpdumpUpgrade dtb-qcomUpgrade reiserfs-kmp-defaultUpgrade gfs2-kmp-64kbUpgrade dtb-renesasUpgrade kernel-kvmsmallUpgrade kernel-devel-azureUpgrade cluster-md-kmp-rtUpgrade kernel-rt-develUpgrade kernel-64kb-develUpgrade gfs2-kmp-rtUpgrade dlm-kmp-defaultUpgrade cluster-md-kmp-defaultUpgrade kernel-syms-azureUpgrade kernel-default | Dec 5, 2025 | Aug 18, 2025 |
| Ubuntu | — | Upgrade linux-image-aws-6.14Upgrade linux-image-virtual-hwe-24.04Upgrade linux-image-gcp-fips-6.8Upgrade linux-image-oem-22.04aUpgrade linux-image-gcp-64kUpgrade linux-image-6.8.0-1046-nvidia-lowlatency-64kUpgrade linux-image-oracle-64k-6.8Upgrade linux-image-raspi-realtime-6.8Upgrade linux-image-gke-64k-6.8Upgrade linux-image-gcpUpgrade linux-image-genericUpgrade linux-image-lowlatencyUpgrade linux-image-virtual-6.8Upgrade linux-image-6.8.0-1044-ibmUpgrade linux-image-gke-6.8Upgrade linux-image-oracle-6.8Upgrade linux-image-nvidia-64kUpgrade linux-image-gcp-fipsUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-aws-64kUpgrade linux-image-azure-6.14Upgrade linux-image-nvidiaUpgrade linux-image-6.8.0-1023-xilinxUpgrade linux-image-aws-lts-24.04Upgrade linux-image-azure-6.8Upgrade linux-image-raspi-6.14Upgrade linux-image-oem-24.04aUpgrade linux-image-realtime-hwe-24.04Upgrade linux-image-6.14.0-1012-realtimeUpgrade linux-image-xilinxUpgrade linux-image-oem-22.04cUpgrade linux-image-6.8.0-1046-aws-fipsUpgrade linux-image-realtime-6.8.1Upgrade linux-image-ibm-classicUpgrade linux-image-generic-6.8Upgrade linux-image-aws-6.8Upgrade linux-image-6.14.0-1013-oracle-64kUpgrade linux-image-6.8.0-1046-azureUpgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-realtime-hwe-22.04Upgrade linux-image-oem-22.04bUpgrade linux-image-6.8.0-1047-raspiUpgrade linux-image-generic-6.14Upgrade linux-image-lowlatency-64kUpgrade linux-image-generic-hwe-22.04Upgrade linux-image-oem-22.04Upgrade linux-image-gcp-64k-6.14Upgrade linux-image-gcp-6.14Upgrade linux-image-oracle-64k-6.14Upgrade linux-image-intel-iot-realtimeUpgrade linux-image-nvidia-lowlatency-6.8Upgrade linux-image-6.8.0-100-lowlatency-64kUpgrade linux-image-6.14.0-1013-awsUpgrade linux-image-xilinx-6.8Upgrade linux-image-6.8.0-100-genericUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-virtual-hwe-22.04Upgrade linux-image-raspi-realtimeUpgrade linux-image-raspiUpgrade linux-image-6.14.0-1016-gcp-64kUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-6.14.0-1013-aws-64kUpgrade linux-image-6.8.0-1051-azureUpgrade linux-image-intel-iotgUpgrade linux-image-oem-24.04Upgrade linux-image-gkeopUpgrade linux-image-generic-64kUpgrade linux-image-virtual-6.14Upgrade linux-image-6.8.0-1046-azure-fipsUpgrade linux-image-realtime-6.14Upgrade linux-image-oem-22.04dUpgrade linux-image-aws-64k-6.14Upgrade linux-image-6.8.0-1043-oracleUpgrade linux-image-gkeUpgrade linux-image-6.14.0-1016-gcpUpgrade linux-image-gkeop-6.8Upgrade linux-image-azure-fips-6.8Upgrade linux-image-azure-lts-24.04Upgrade linux-image-6.8.0-1043-gkeUpgrade linux-image-6.8.0-1046-awsUpgrade linux-image-azureUpgrade linux-image-oracle-lts-24.04Upgrade linux-image-fips-6.8Upgrade linux-image-6.8.0-1047-gcpUpgrade linux-image-6.8.0-100-fipsUpgrade linux-image-ibmUpgrade linux-image-raspi-6.8Upgrade linux-image-6.14.0-32-generic-64kUpgrade linux-image-oracle-64kUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-virtualUpgrade linux-image-6.14.0-1012-azureUpgrade linux-image-gke-64kUpgrade linux-image-nvidia-lowlatency-64k-6.8Upgrade linux-image-generic-64k-6.8Upgrade linux-image-nvidia-lowlatencyUpgrade linux-image-6.8.0-1047-gcp-fipsUpgrade linux-image-6.8.0-1030-gkeopUpgrade linux-image-gcp-64k-6.8Upgrade linux-image-aws-fipsUpgrade linux-image-6.8.0-1046-nvidiaUpgrade linux-image-6.8.0-1046-aws-64kUpgrade linux-image-6.14.0-1013-oracleUpgrade linux-image-aws-64k-lts-24.04Upgrade linux-image-aws-64k-6.8Upgrade linux-image-generic-lpaeUpgrade linux-image-oracleUpgrade linux-image-oem-6.14Upgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-oracle-6.14Upgrade linux-image-6.8.0-1043-oracle-64kUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-gcp-lts-24.04Upgrade linux-image-6.8.0-1047-gcp-64kUpgrade linux-image-6.8.0-100-lowlatencyUpgrade linux-image-6.14.0-1012-oemUpgrade linux-image-6.8.0-1043-gke-64kUpgrade linux-image-lowlatency-6.8Upgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-6.8.1-1041-realtimeUpgrade linux-image-ibm-6.8Upgrade linux-image-lowlatency-64k-6.8Upgrade linux-image-nvidia-6.8Upgrade linux-image-aws-fips-6.8Upgrade linux-image-oem-24.04bUpgrade linux-image-6.14.0-1014-raspiUpgrade linux-image-6.14.0-32-genericUpgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-fipsUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-generic-64k-6.14Upgrade linux-image-gcp-6.8Upgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-6.8.0-1046-nvidia-lowlatencyUpgrade linux-image-6.8.0-2037-raspi-realtimeUpgrade linux-image-awsUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-oem-24.04cUpgrade linux-image-kvmUpgrade linux-image-6.8.0-1046-nvidia-64kUpgrade linux-image-6.8.0-100-generic-64kUpgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-azure-fipsUpgrade linux-image-realtime | 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 |
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