In the Linux kernel, the following vulnerability has been resolved:
inet: inet_defrag: prevent sk release while still in use
ip_local_out() and other functions can pass skb->sk as function argument.
If the skb is a fragment and reassembly happens before such function call returns, the sk must not be released.
This affects skb fragments reassembled via netfilter or similar modules, e.g. openvswitch or ct_act.c, when run as part of tx pipeline.
Eric Dumazet made an initial analysis of this bug. Quoting Eric: Calling ip_defrag() in output path is also implying skb_orphan(), which is buggy because output path relies on sk not disappearing.
A relevant old patch about the issue was : 8282f27449bf ("inet: frag: Always orphan skbs inside ip_defrag()")
[..]
net/ipv4/ip_output.c depends on skb->sk being set, and probably to an inet socket, not an arbitrary one.
If we orphan the packet in ipvlan, then downstream things like FQ packet scheduler will not work properly.
We need to change ip_defrag() to only use skb_orphan() when really needed, ie whenever frag_list is going to be used.
Eric suggested to stash sk in fragment queue and made an initial patch. However there is a problem with this:
If skb is refragmented again right after, ip_do_fragment() will copy head->sk to the new fragments, and sets up destructor to sock_wfree. IOW, we have no choice but to fix up sk_wmem accouting to reflect the fully reassembled skb, else wmem will underflow.
This change moves the orphan down into the core, to last possible moment. As ip_defrag_offset is aliased with sk_buff->sk member, we must move the offset into the FRAG_CB, else skb->sk gets clobbered.
This allows to delay the orphaning long enough to learn if the skb has to be queued or if the skb is completing the reasm queue.
In the former case, things work as before, skb is orphaned. This is safe because skb gets queued/stolen and won't continue past reasm engine.
In the latter case, we will steal the skb->sk reference, reattach it to the head skb, and fix up wmem accouting when inet_frag inflates truesize.
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Alma_linux | — | Upgrade kernel-rt-kvmUpgrade kernel-zfcpdump-coreUpgrade kernel-debug-modules-extraUpgrade kernel-abi-stablelistsUpgrade kernel-rt-debug-coreUpgrade kernel-rt-debugUpgrade kernel-rt-develUpgrade kernel-tools-libs-develUpgrade kernel-debug-modulesUpgrade kernel-rt-modules-extraUpgrade kernel-rt-coreUpgrade python3-perfUpgrade kernel-tools-libsUpgrade bpftoolUpgrade kernel-cross-headersUpgrade kernelUpgrade kernel-zfcpdump-develUpgrade kernel-rtUpgrade kernel-debug-develUpgrade kernel-debugUpgrade kernel-zfcpdumpUpgrade kernel-rt-debug-modulesUpgrade perfUpgrade kernel-develUpgrade kernel-zfcpdump-modules-extraUpgrade kernel-toolsUpgrade kernel-rt-debug-develUpgrade kernel-debug-coreUpgrade kernel-modulesUpgrade kernel-rt-modulesUpgrade kernel-headersUpgrade kernel-docUpgrade kernel-rt-debug-modules-extraUpgrade kernel-rt-debug-kvmUpgrade kernel-coreUpgrade kernel-zfcpdump-modulesUpgrade kernel-modules-extra | Aug 12, 2024 | Apr 18, 2024 |
| Amazon Linux Ami 2 | — | Upgrade kernel-tools-debuginfoUpgrade bpftoolUpgrade kernel-develUpgrade kernel-livepatch-5.15.168-114.166Upgrade kernel-debuginfo-common-aarch64Upgrade kernel-debuginfoUpgrade kernel-tools-develUpgrade perfUpgrade bpftool-debuginfoUpgrade kernel-toolsUpgrade kernel-debuginfo-common-x86_64Upgrade python-perfUpgrade kernelUpgrade kernel-livepatch-5.10.227-219.884Upgrade kernel-headersUpgrade perf-debuginfoUpgrade python-perf-debuginfo | Nov 4, 2024 | Apr 18, 2024 |
| Amazon_linux_2023 | — | Upgrade kernel-debuginfo-common-aarch64Upgrade kernel-toolsUpgrade kernel-libbpf-develUpgrade perfUpgrade perf-debuginfoUpgrade kernel-modules-extra-commonUpgrade kernel-libbpf-staticUpgrade kernelUpgrade kernel-tools-develUpgrade python3-perfUpgrade kernel-tools-debuginfoUpgrade kernel-modules-extraUpgrade bpftoolUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-debuginfoUpgrade kernel-headersUpgrade bpftool-debuginfoUpgrade kernel-libbpfUpgrade kernel-livepatch-6.1.87-99.174Upgrade kernel-develUpgrade python3-perf-debuginfo | Feb 17, 2025 | Apr 18, 2024 |
| Debian | — | Upgrade linux | Jul 30, 2024 | Apr 18, 2024 |
| Huawei Euleros 2_0_sp10 | — | Upgrade kernel-toolsUpgrade python3-perfUpgrade kernel-abi-stablelistsUpgrade kernel-tools-libsUpgrade kernel | Jul 16, 2024 | Apr 18, 2024 |
| Huawei Euleros 2_0_sp11 | — | Upgrade kernel-toolsUpgrade python3-perfUpgrade kernelUpgrade kernel-abi-stablelistsUpgrade kernel-tools-libsUpgrade bpftool | Dec 12, 2024 | Apr 18, 2024 |
| Huawei Euleros 2_0_sp9 | — | Upgrade python3-perfUpgrade kernelUpgrade kernel-toolsUpgrade kernel-tools-libs | Jul 17, 2024 | Apr 18, 2024 |
| Oracle_linux | — | Upgrade kernel-uekUpgrade kernel | Aug 16, 2024 | Apr 18, 2024 |
| Redhat_linux | — | Upgrade kernelUpgrade kernel-rtNo solution exists | Aug 12, 2024 | Apr 18, 2024 |
| Rocky_linux | — | Upgrade kernel-develUpgrade kernel-debug-develUpgrade kernel-rt-debugUpgrade perf-debuginfoUpgrade kernel-rt-debug-modules-extraUpgrade kernel-debuginfoUpgrade kernel-tools-libs-develUpgrade kernel-rt-debug-develUpgrade kernel-rt-coreUpgrade perfUpgrade python3-perfUpgrade kernel-coreUpgrade kernel-rt-develUpgrade kernel-rt-debug-kvmUpgrade kernel-rt-debuginfo-common-x86_64Upgrade python3-perf-debuginfoUpgrade kernel-rt-modules-extraUpgrade kernel-debugUpgrade kernel-tools-debuginfoUpgrade kernel-headersUpgrade kernel-modules-extraUpgrade kernel-debug-debuginfoUpgrade kernel-cross-headersUpgrade bpftoolUpgrade kernel-rt-debug-modulesUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-debug-modulesUpgrade kernel-rt-modulesUpgrade kernel-rt-debuginfoUpgrade kernel-rt-debug-coreUpgrade kernel-debug-modules-extraUpgrade kernel-modulesUpgrade kernelUpgrade kernel-rtUpgrade kernel-toolsUpgrade kernel-tools-libsUpgrade bpftool-debuginfoUpgrade kernel-rt-debug-debuginfoUpgrade kernel-debug-coreUpgrade kernel-rt-kvm | Aug 22, 2024 | Apr 18, 2024 |
| Suse | — | Upgrade dtb-exynosUpgrade dtb-renesasUpgrade dtb-caviumUpgrade kernel-default-livepatch-develUpgrade gfs2-kmp-rtUpgrade kernel-debug-develUpgrade ocfs2-kmp-azureUpgrade kernel-preempt-develUpgrade ocfs2-kmp-defaultUpgrade kernel-rt-livepatchUpgrade dlm-kmp-azureUpgrade dtb-apmUpgrade kernel-rt-develUpgrade kernel-rt_debug-livepatch-develUpgrade dtb-hisiliconUpgrade cluster-md-kmp-defaultUpgrade kernel-docsUpgrade dtb-allwinnerUpgrade reiserfs-kmp-azureUpgrade kernel-develUpgrade reiserfs-kmp-defaultUpgrade kernel-64kbUpgrade kernel-default-extraUpgrade dtb-amazonUpgrade cluster-md-kmp-azureUpgrade gfs2-kmp-64kbUpgrade dtb-amdUpgrade kernel-zfcpdumpUpgrade kernel-default-optionalUpgrade dtb-xilinxUpgrade kernel-devel-rtUpgrade kernel-debugUpgrade ocfs2-kmp-rtUpgrade kernel-default-develUpgrade dtb-mediatekUpgrade cluster-md-kmp-rtUpgrade kernel-symsUpgrade kernel-kvmsmall-develUpgrade dtb-armUpgrade kernel-64kb-livepatch-develUpgrade kernel-obs-qaUpgrade kernel-default-baseUpgrade kselftests-kmp-defaultUpgrade kernel-64kb-optionalUpgrade kernel-default-vdsoUpgrade kernel-64kb-develUpgrade kernel-azureUpgrade kernel-syms-azureUpgrade kernel-syms-rtUpgrade kernel-source-vanillaUpgrade kernel-source-azureUpgrade kernel-rtUpgrade kernel-kvmsmall-livepatch-develUpgrade kernel-azure-baseUpgrade dtb-marvellUpgrade kernel-azure-livepatch-develUpgrade gfs2-kmp-azureUpgrade kselftests-kmp-64kbUpgrade kernel-debug-livepatch-develUpgrade reiserfs-kmp-64kbUpgrade kernel-azure-extraUpgrade kernel-azure-optionalUpgrade dtb-qcomUpgrade dtb-lgUpgrade dtb-amlogicUpgrade reiserfs-kmp-rtUpgrade kernel-rt-vdsoUpgrade kernel-default-manUpgrade kernel-debug-vdsoUpgrade kernel-kvmsmall-vdsoUpgrade kernel-docs-htmlUpgrade kernel-devel-azureUpgrade dtb-freescaleUpgrade dtb-alteraUpgrade ocfs2-kmp-64kbUpgrade kernel-sourceUpgrade kernel-rt_debug-develUpgrade kernel-preemptUpgrade kernel-azure-develUpgrade kernel-64kb-extraUpgrade kernel-default-livepatchUpgrade dtb-sprdUpgrade dlm-kmp-64kbUpgrade kernel-kvmsmallUpgrade kernel-rt-optionalUpgrade kernel-source-rtUpgrade kernel-rt-extraUpgrade kernel-obs-buildUpgrade kernel-azure-vdsoUpgrade dtb-appleUpgrade dlm-kmp-rtUpgrade dlm-kmp-defaultUpgrade dtb-socionextUpgrade dtb-nvidiaUpgrade cluster-md-kmp-64kbUpgrade kernel-rt_debug-vdsoUpgrade dtb-rockchipUpgrade kselftests-kmp-rtUpgrade gfs2-kmp-defaultUpgrade kernel-macrosUpgrade kselftests-kmp-azureUpgrade kernel-rt_debugUpgrade dtb-broadcomUpgrade kernel-rt-livepatch-develUpgrade kernel-default-base-rebuildUpgrade kernel-default | Jun 12, 2024 | Apr 18, 2024 |
| Ubuntu | — | Upgrade linux-image-gkeop-5.4Upgrade linux-image-4.4.0-1180-awsUpgrade linux-image-genericUpgrade linux-image-generic-lts-xenialUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-oemUpgrade linux-image-generic-64kUpgrade linux-image-5.15.0-1066-oracleUpgrade linux-image-generic-lpaeUpgrade linux-image-6.8.0-1009-nvidiaUpgrade linux-image-ibm-lts-20.04Upgrade linux-image-6.8.0-1008-oemUpgrade linux-image-ibmUpgrade linux-image-5.15.0-1067-gcpUpgrade linux-image-fipsUpgrade linux-image-oracle-lts-22.04Upgrade linux-image-azure-lts-20.04Upgrade linux-image-6.8.0-1010-azure-fdeUpgrade linux-image-5.15.0-1051-gkeopUpgrade linux-image-oem-20.04bUpgrade linux-image-5.15.0-1065-gkeUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-5.15.0-1068-awsUpgrade linux-image-oracleUpgrade linux-image-lowlatency-hwe-16.04Upgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-4.15.0-232-lowlatencyUpgrade linux-image-4.15.0-1138-oracleUpgrade linux-image-6.8.0-1009-nvidia-64kUpgrade linux-image-raspi-nolpaeUpgrade linux-image-5.15.0-1063-intel-iotgUpgrade linux-image-azure-lts-22.04Upgrade linux-image-6.8.0-38-lowlatency-64kUpgrade linux-image-aws-hweUpgrade linux-image-5.4.0-1115-raspiUpgrade linux-image-lowlatency-hwe-18.04Upgrade linux-image-gkeUpgrade linux-image-5.4.0-1050-xilinx-zynqmpUpgrade linux-image-6.8.0-38-lowlatencyUpgrade linux-image-5.4.0-193-genericUpgrade linux-image-6.8.0-1006-gkeUpgrade linux-image-gkeopUpgrade linux-image-6.8.0-1010-gcpUpgrade linux-image-5.15.0-119-generic-lpaeUpgrade linux-image-virtual-hwe-16.04Upgrade linux-image-oem-20.04Upgrade linux-image-5.15.0-119-generic-64kUpgrade linux-image-6.8.0-38-generic-64kUpgrade linux-image-aws-lts-18.04Upgrade linux-image-5.4.0-1043-iotUpgrade linux-image-5.15.0-1061-raspiUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-4.15.0-232-genericUpgrade linux-image-bluefieldUpgrade linux-image-lowlatency-64kUpgrade linux-image-gke-5.15Upgrade linux-image-nvidiaUpgrade linux-image-5.4.0-1119-kvmUpgrade linux-image-lowlatencyUpgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-4.4.0-267-genericUpgrade linux-image-5.4.0-1135-gcpUpgrade linux-image-azure-fdeUpgrade linux-image-gcp-lts-22.04Upgrade linux-image-gcp-lts-20.04Upgrade linux-image-5.4.0-1098-gkeopUpgrade linux-image-generic-hwe-16.04Upgrade linux-image-oracle-lts-20.04Upgrade linux-image-5.4.0-193-generic-lpaeUpgrade linux-image-snapdragon-hwe-18.04Upgrade linux-image-6.8.0-1011-awsUpgrade linux-image-gcpUpgrade linux-image-oracle-lts-18.04Upgrade linux-image-5.15.0-119-genericUpgrade linux-image-6.8.0-38-genericUpgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-6.8.0-1010-azureUpgrade linux-image-aws-lts-22.04Upgrade linux-image-5.4.0-1131-awsUpgrade linux-image-nvidia-64kUpgrade linux-image-gcp-lts-18.04Upgrade linux-image-raspiUpgrade linux-image-5.4.0-193-lowlatencyUpgrade linux-image-lowlatency-lts-xenialUpgrade linux-image-ibm-classicUpgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-virtual-hwe-24.04Upgrade linux-image-5.4.0-1130-oracleUpgrade linux-image-5.15.0-1063-nvidiaUpgrade linux-image-4.15.0-1184-azureUpgrade linux-image-5.15.0-1065-kvmUpgrade linux-image-intel-iotgUpgrade linux-image-oracle-64kUpgrade linux-image-4.15.0-1176-awsUpgrade linux-image-6.8.0-1008-ibmUpgrade linux-image-6.8.0-1008-oracle-64kUpgrade linux-image-oem-24.04aUpgrade linux-image-azureUpgrade linux-image-5.15.0-119-lowlatencyUpgrade linux-image-generic-hwe-20.04Upgrade linux-image-intelUpgrade linux-image-5.15.0-1071-azure-fdeUpgrade linux-image-5.15.0-119-lowlatency-64kUpgrade linux-image-4.4.0-267-lowlatencyUpgrade linux-image-oem-20.04cUpgrade linux-image-virtual-hwe-18.04Upgrade linux-image-gkeop-5.15Upgrade linux-image-5.4.0-1091-bluefieldUpgrade linux-image-virtualUpgrade linux-image-6.8.0-1008-oracleUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-azure-fde-lts-22.04Upgrade linux-image-oem-20.04dUpgrade linux-image-5.15.0-1071-azureUpgrade linux-image-4.4.0-1112-fipsUpgrade linux-image-kvmUpgrade linux-image-5.15.0-1063-nvidia-lowlatencyUpgrade linux-image-virtual-lts-xenialUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-5.15.0-1061-ibmUpgrade linux-image-6.8.0-1007-intelUpgrade linux-image-oem-osp1Upgrade linux-image-5.15.0-1035-xilinx-zynqmpUpgrade linux-image-6.8.0-1007-raspiUpgrade linux-image-4.15.0-1169-gcpUpgrade linux-image-generic-hwe-18.04Upgrade linux-image-5.4.0-1136-azureUpgrade linux-image-oem-24.04Upgrade linux-image-raspi2Upgrade linux-image-4.4.0-1143-kvmUpgrade linux-image-4.15.0-1159-kvmUpgrade linux-image-raspi-hwe-18.04Upgrade linux-image-aws-lts-20.04Upgrade linux-image-5.4.0-1078-ibmUpgrade linux-image-virtual-hwe-20.04Upgrade linux-image-azure-lts-18.04Upgrade linux-image-azure-cvmUpgrade linux-image-awsUpgrade linux-image-4.4.0-1142-aws | Jul 12, 2024 | Apr 18, 2024 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Jan 20, 2025 | Apr 18, 2024 |
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