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.
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-tools-libsUpgrade kernel-zfcpdump-coreUpgrade kernelUpgrade kernel-rt-coreUpgrade kernel-rt-kvmUpgrade bpftoolUpgrade kernel-debug-modulesUpgrade kernel-debug-modules-extraUpgrade kernel-abi-stablelistsUpgrade kernel-rt-develUpgrade kernel-cross-headersUpgrade kernel-rt-debugUpgrade kernel-tools-libs-develUpgrade kernel-rt-modules-extraUpgrade kernel-rt-debug-coreUpgrade python3-perfUpgrade kernel-headersUpgrade kernel-rt-modulesUpgrade kernel-modules-extraUpgrade kernel-debugUpgrade kernel-debug-develUpgrade kernel-rtUpgrade kernel-zfcpdump-modulesUpgrade kernel-rt-debug-modules-extraUpgrade kernel-zfcpdump-develUpgrade kernel-toolsUpgrade kernel-docUpgrade kernel-debug-coreUpgrade kernel-rt-debug-modulesUpgrade perfUpgrade kernel-develUpgrade kernel-zfcpdumpUpgrade kernel-rt-debug-develUpgrade kernel-zfcpdump-modules-extraUpgrade kernel-modulesUpgrade kernel-rt-debug-kvmUpgrade kernel-core | Aug 12, 2024 | Apr 18, 2024 |
| Amazon Linux Ami 2 | — | Upgrade kernel-livepatch-5.15.168-114.166Upgrade kernel-develUpgrade kernel-tools-debuginfoUpgrade perfUpgrade kernel-debuginfoUpgrade kernel-debuginfo-common-aarch64Upgrade kernel-tools-develUpgrade bpftoolUpgrade python-perfUpgrade kernel-headersUpgrade kernelUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-livepatch-5.10.227-219.884Upgrade python-perf-debuginfoUpgrade perf-debuginfoUpgrade kernel-toolsUpgrade bpftool-debuginfo | Nov 4, 2024 | Apr 18, 2024 |
| Amazon_linux_2023 | — | Upgrade kernel-libbpfUpgrade kernel-livepatch-6.1.87-99.174Upgrade kernel-develUpgrade kernel-debuginfo-common-x86_64Upgrade python3-perf-debuginfoUpgrade kernel-headersUpgrade kernel-debuginfoUpgrade bpftool-debuginfoUpgrade bpftoolUpgrade kernel-tools-debuginfoUpgrade kernel-modules-extraUpgrade kernel-toolsUpgrade kernel-debuginfo-common-aarch64Upgrade python3-perfUpgrade perf-debuginfoUpgrade kernel-modules-extra-commonUpgrade kernel-libbpf-develUpgrade kernel-tools-develUpgrade kernelUpgrade perfUpgrade kernel-libbpf-static | Feb 17, 2025 | Apr 18, 2024 |
| Debian | — | Upgrade linux | Jul 30, 2024 | Apr 18, 2024 |
| Huawei Euleros 2_0_sp10 | — | Upgrade kernel-tools-libsUpgrade kernelUpgrade kernel-abi-stablelistsUpgrade kernel-toolsUpgrade python3-perf | Jul 16, 2024 | Apr 18, 2024 |
| Huawei Euleros 2_0_sp11 | — | Upgrade kernel-tools-libsUpgrade bpftoolUpgrade kernelUpgrade python3-perfUpgrade kernel-abi-stablelistsUpgrade kernel-tools | Dec 12, 2024 | Apr 18, 2024 |
| Huawei Euleros 2_0_sp9 | — | Upgrade kernel-tools-libsUpgrade kernel-toolsUpgrade kernelUpgrade python3-perf | Jul 17, 2024 | Apr 18, 2024 |
| Oracle_linux | — | Upgrade kernelUpgrade kernel-uek | Aug 16, 2024 | Apr 18, 2024 |
| Redhat_linux | — | Upgrade kernelUpgrade kernel-rtNo solution exists | Aug 12, 2024 | Apr 18, 2024 |
| Rocky_linux | — | Upgrade kernel-rt-coreUpgrade kernel-rt-debug-modules-extraUpgrade kernel-develUpgrade perf-debuginfoUpgrade kernel-tools-libs-develUpgrade kernel-debug-develUpgrade kernel-debuginfoUpgrade perfUpgrade kernel-rt-debugUpgrade kernel-rt-debug-develUpgrade python3-perfUpgrade kernel-debug-modulesUpgrade kernel-rt-debuginfoUpgrade kernel-debug-coreUpgrade kernel-tools-libsUpgrade kernel-rt-modulesUpgrade kernel-rt-debug-modulesUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-toolsUpgrade kernel-rt-develUpgrade kernel-modules-extraUpgrade kernel-headersUpgrade kernel-debug-debuginfoUpgrade kernel-cross-headersUpgrade kernel-coreUpgrade kernel-tools-debuginfoUpgrade python3-perf-debuginfoUpgrade kernel-rt-modules-extraUpgrade kernel-rt-debuginfo-common-x86_64Upgrade kernel-debugUpgrade bpftool-debuginfoUpgrade bpftoolUpgrade kernel-debug-modules-extraUpgrade kernel-rt-debug-coreUpgrade kernelUpgrade kernel-rtUpgrade kernel-modulesUpgrade kernel-rt-debug-kvmUpgrade kernel-rt-kvmUpgrade kernel-rt-debug-debuginfo | Aug 22, 2024 | Apr 18, 2024 |
| Suse | — | Upgrade kernel-rt-develUpgrade kernel-rt-livepatchUpgrade dtb-allwinnerUpgrade kernel-debug-develUpgrade kernel-default-livepatch-develUpgrade dtb-mediatekUpgrade dtb-apmUpgrade kernel-docsUpgrade ocfs2-kmp-defaultUpgrade dtb-amazonUpgrade dtb-armUpgrade kernel-rt_debug-livepatch-develUpgrade dtb-caviumUpgrade dtb-exynosUpgrade dtb-renesasUpgrade gfs2-kmp-rtUpgrade dtb-amdUpgrade kernel-64kb-livepatch-develUpgrade cluster-md-kmp-rtUpgrade kernel-symsUpgrade kselftests-kmp-defaultUpgrade gfs2-kmp-64kbUpgrade kernel-64kbUpgrade cluster-md-kmp-azureUpgrade kernel-default-extraUpgrade kernel-default-baseUpgrade reiserfs-kmp-defaultUpgrade kernel-develUpgrade dtb-xilinxUpgrade kernel-debugUpgrade kernel-64kb-optionalUpgrade ocfs2-kmp-rtUpgrade kernel-zfcpdumpUpgrade kernel-default-optionalUpgrade kernel-devel-rtUpgrade kernel-kvmsmall-develUpgrade kernel-64kb-develUpgrade kernel-preempt-develUpgrade dtb-hisiliconUpgrade ocfs2-kmp-azureUpgrade cluster-md-kmp-defaultUpgrade kernel-default-vdsoUpgrade kernel-obs-qaUpgrade reiserfs-kmp-azureUpgrade kernel-default-develUpgrade dlm-kmp-azureUpgrade dtb-qcomUpgrade kernel-azure-vdsoUpgrade kernel-default-manUpgrade kernel-rt-vdsoUpgrade kselftests-kmp-azureUpgrade kernel-obs-buildUpgrade kernel-defaultUpgrade kernel-devel-azureUpgrade kernel-preemptUpgrade kernel-64kb-extraUpgrade dtb-alteraUpgrade kernel-sourceUpgrade ocfs2-kmp-64kbUpgrade dlm-kmp-64kbUpgrade kernel-rt-optionalUpgrade kernel-kvmsmallUpgrade kernel-default-livepatchUpgrade dtb-sprdUpgrade kernel-rt_debug-develUpgrade kselftests-kmp-64kbUpgrade gfs2-kmp-azureUpgrade kernel-kvmsmall-vdsoUpgrade dtb-amlogicUpgrade kernel-docs-htmlUpgrade kernel-debug-vdsoUpgrade kernel-debug-livepatch-develUpgrade kernel-azure-extraUpgrade dlm-kmp-rtUpgrade dlm-kmp-defaultUpgrade dtb-appleUpgrade kernel-source-rtUpgrade kernel-rt-extraUpgrade reiserfs-kmp-64kbUpgrade kernel-azure-optionalUpgrade dtb-lgUpgrade kernel-macrosUpgrade kernel-azureUpgrade gfs2-kmp-defaultUpgrade dtb-broadcomUpgrade kernel-rt-livepatch-develUpgrade kernel-default-base-rebuildUpgrade kernel-rt_debugUpgrade kernel-azure-develUpgrade dtb-freescaleUpgrade kernel-source-vanillaUpgrade kernel-syms-azureUpgrade kernel-rtUpgrade kernel-kvmsmall-livepatch-develUpgrade kernel-azure-livepatch-develUpgrade kernel-azure-baseUpgrade dtb-marvellUpgrade kernel-syms-rtUpgrade kernel-source-azureUpgrade kselftests-kmp-rtUpgrade kernel-rt_debug-vdsoUpgrade dtb-socionextUpgrade dtb-rockchipUpgrade dtb-nvidiaUpgrade cluster-md-kmp-64kbUpgrade reiserfs-kmp-rt | Jun 12, 2024 | Apr 18, 2024 |
| Ubuntu | — | Upgrade linux-image-lowlatency-lts-xenialUpgrade linux-image-4.4.0-1143-kvmUpgrade linux-image-4.15.0-1159-kvmUpgrade linux-image-raspi-hwe-18.04Upgrade linux-image-5.15.0-119-genericUpgrade linux-image-generic-hwe-18.04Upgrade linux-image-ibm-classicUpgrade linux-image-5.4.0-1130-oracleUpgrade linux-image-6.8.0-38-genericUpgrade linux-image-oracle-64kUpgrade linux-image-azureUpgrade linux-image-5.15.0-1065-kvmUpgrade linux-image-4.15.0-1184-azureUpgrade linux-image-6.8.0-1008-oracle-64kUpgrade linux-image-4.15.0-1176-awsUpgrade linux-image-6.8.0-1008-ibmUpgrade linux-image-6.8.0-1007-raspiUpgrade linux-image-virtual-hwe-20.04Upgrade linux-image-5.4.0-1078-ibmUpgrade linux-image-azure-cvmUpgrade linux-image-azure-lts-18.04Upgrade linux-image-awsUpgrade linux-image-4.4.0-1142-awsUpgrade linux-image-5.15.0-119-lowlatencyUpgrade linux-image-5.4.0-1136-azureUpgrade linux-image-5.15.0-1071-azureUpgrade linux-image-4.4.0-1112-fipsUpgrade linux-image-6.8.0-1008-oracleUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-kvmUpgrade linux-image-oem-20.04dUpgrade linux-image-aws-lts-22.04Upgrade linux-image-generic-hwe-20.04Upgrade linux-image-oem-24.04aUpgrade linux-image-oem-24.04Upgrade linux-image-intel-iotgUpgrade linux-image-5.4.0-1091-bluefieldUpgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-nvidia-64kUpgrade linux-image-5.15.0-119-lowlatency-64kUpgrade linux-image-oem-20.04cUpgrade linux-image-gkeop-5.15Upgrade linux-image-5.15.0-1071-azure-fdeUpgrade linux-image-oem-osp1Upgrade linux-image-5.15.0-1063-nvidia-lowlatencyUpgrade linux-image-6.8.0-1007-intelUpgrade linux-image-intelUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-virtual-hwe-24.04Upgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-4.15.0-1169-gcpUpgrade linux-image-virtual-lts-xenialUpgrade linux-image-virtualUpgrade linux-image-virtual-hwe-18.04Upgrade linux-image-4.4.0-267-lowlatencyUpgrade linux-image-raspiUpgrade linux-image-raspi2Upgrade linux-image-5.4.0-1131-awsUpgrade linux-image-6.8.0-1010-azureUpgrade linux-image-5.15.0-1061-ibmUpgrade linux-image-5.15.0-1063-nvidiaUpgrade linux-image-5.15.0-1035-xilinx-zynqmpUpgrade linux-image-aws-lts-20.04Upgrade linux-image-azure-fde-lts-22.04Upgrade linux-image-gcp-lts-18.04Upgrade linux-image-gcpUpgrade linux-image-oracle-lts-18.04Upgrade linux-image-5.4.0-193-lowlatencyUpgrade linux-image-snapdragon-hwe-18.04Upgrade linux-image-lowlatencyUpgrade linux-image-gkeopUpgrade linux-image-oemUpgrade linux-image-6.8.0-1011-awsUpgrade linux-image-5.4.0-193-genericUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-oracleUpgrade linux-image-generic-hwe-16.04Upgrade linux-image-6.8.0-1006-gkeUpgrade linux-image-5.4.0-1050-xilinx-zynqmpUpgrade linux-image-6.8.0-1009-nvidiaUpgrade linux-image-4.4.0-267-genericUpgrade linux-image-oracle-lts-22.04Upgrade linux-image-6.8.0-1009-nvidia-64kUpgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-raspi-nolpaeUpgrade linux-image-5.4.0-1115-raspiUpgrade linux-image-6.8.0-1010-azure-fdeUpgrade linux-image-azure-lts-22.04Upgrade linux-image-5.15.0-1063-intel-iotgUpgrade linux-image-5.4.0-1135-gcpUpgrade linux-image-generic-lpaeUpgrade linux-image-6.8.0-1010-gcpUpgrade linux-image-azure-fdeUpgrade linux-image-6.8.0-38-generic-64kUpgrade linux-image-aws-lts-18.04Upgrade linux-image-virtual-hwe-16.04Upgrade linux-image-5.15.0-119-generic-64kUpgrade linux-image-oem-20.04Upgrade linux-image-5.15.0-119-generic-lpaeUpgrade linux-image-aws-hweUpgrade linux-image-gkeUpgrade linux-image-fipsUpgrade linux-image-generic-64kUpgrade linux-image-bluefieldUpgrade linux-image-nvidiaUpgrade linux-image-5.15.0-1066-oracleUpgrade linux-image-5.4.0-1098-gkeopUpgrade linux-image-generic-lts-xenialUpgrade linux-image-5.15.0-1065-gkeUpgrade linux-image-5.4.0-1119-kvmUpgrade linux-image-6.8.0-38-lowlatencyUpgrade linux-image-gcp-lts-20.04Upgrade linux-image-gkeop-5.4Upgrade linux-image-lowlatency-hwe-18.04Upgrade linux-image-ibmUpgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-ibm-lts-20.04Upgrade linux-image-lowlatency-64kUpgrade linux-image-5.15.0-1067-gcpUpgrade linux-image-gcp-lts-22.04Upgrade linux-image-4.15.0-232-genericUpgrade linux-image-oem-20.04bUpgrade linux-image-genericUpgrade linux-image-6.8.0-38-lowlatency-64kUpgrade linux-image-5.15.0-1068-awsUpgrade linux-image-lowlatency-hwe-16.04Upgrade linux-image-gke-5.15Upgrade linux-image-oracle-lts-20.04Upgrade linux-image-nvidia-lowlatencyUpgrade linux-image-4.15.0-232-lowlatencyUpgrade linux-image-azure-lts-20.04Upgrade linux-image-5.15.0-1051-gkeopUpgrade linux-image-4.4.0-1180-awsUpgrade linux-image-5.4.0-193-generic-lpaeUpgrade linux-image-6.8.0-1008-oemUpgrade linux-image-4.15.0-1138-oracleUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-5.4.0-1043-iotUpgrade linux-image-5.15.0-1061-raspi | 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 |
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