CVE-2024-26921 json
inet: inet_defrag: prevent sk release while still in use
published 2024-04-18 2 y ago modified 2026-08-05 3 mo ago also EUVD-2024-24183
- cvss
- 7.8
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.4%
- EPSS 0.4% chance of exploitation in 30 days, percentile 34%
- public exploits
- 0
- none known
Summary
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.
Patch / fix
- Linux Linux 5.4.285, 5.10.227, 5.15.168, 6.1.85, 6.6.26, 6.8.5, 6.9
- linux Debian 12 6.1.85-1
- linux Debian 14, Debian 13 6.8.9-1
debian advisories DEBIAN-CVE-2024-26921
- linux Ubuntu 20.04 LTS 5.4.0-193.213
- linux Ubuntu 22.04 LTS 5.15.0-119.129
- linux Ubuntu 24.04 LTS 6.8.0-38.38
- linux-aws Ubuntu 20.04 LTS 5.4.0-1131.141
- linux-aws Ubuntu 22.04 LTS 5.15.0-1068.74
- linux-aws Ubuntu 24.04 LTS 6.8.0-1011.12
- linux-gcp Ubuntu 20.04 LTS 5.4.0-1135.144
- linux-gcp Ubuntu 22.04 LTS 5.15.0-1067.75
ubuntu advisories UBUNTU-CVE-2024-26921
Ubuntu security data © Canonical Ltd., from https://github.com/canonical/ubuntu-security-notices via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
- kernel RHEL 9 5.14.0-503.11.1.el9_5
- rv RHEL 9 5.14.0-503.11.1.el9_5
- perf RHEL 9 5.14.0-503.11.1.el9_5
- rtla RHEL 9 5.14.0-503.11.1.el9_5
- bpftool RHEL 9 7.4.0-503.11.1.el9_5
- libperf RHEL 9 5.14.0-503.11.1.el9_5
- kernel-rt RHEL 9 5.14.0-503.11.1.el9_5
- kernel-64k RHEL 9 5.14.0-503.11.1.el9_5
red hat advisories RHSA-2025:8796RHSA-2024:9315RHSA-2024:5102RHSA-2024:5101
- kernel-rt Linux Micro 6.0 6.4.0-9.1
- kernel-source-rt Linux Micro 6.0 6.4.0-9.1
- kernel-source Linux Micro 6.0 6.4.0-18.1
- kernel-default Linux Micro 6.0 6.4.0-18.1
- kernel-kvmsmall Linux Micro 6.0 6.4.0-18.1
- kernel-default-base Linux Micro 6.0 6.4.0-17.1.1.51
- kernel-rt Real Time Module 15 SP6, openSUSE Leap 15.6 6.4.0-150600.10.5.1
- kernel-syms-rt Real Time Module 15 SP6, openSUSE Leap 15.6 6.4.0-150600.10.5.1
suse advisories SUSE-SU-2025:20028-1SUSE-SU-2025:20008-1SUSE-SU-2024:2973-1SUSE-SU-2024:2365-1SUSE-SU-2024:2203-1SUSE-SU-2024:2190-1
- kernel AlmaLinux 8 4.18.0-553.16.1.el8_10
- perf AlmaLinux 8 4.18.0-553.16.1.el8_10
- bpftool AlmaLinux 8 4.18.0-553.16.1.el8_10
- kernel-core AlmaLinux 8 4.18.0-553.16.1.el8_10
- kernel-tools AlmaLinux 8 4.18.0-553.16.1.el8_10
- python3-perf AlmaLinux 8 4.18.0-553.16.1.el8_10
- kernel-modules AlmaLinux 8 4.18.0-553.16.1.el8_10
- kernel-zfcpdump AlmaLinux 8 4.18.0-553.16.1.el8_10
almalinux advisories ALSA-2024:5101ALSA-2024:5102
- kernel Rocky Linux 8 4.18.0-553.16.1.el8_10.cloud.0.1
- kernel-rt Rocky Linux 8 4.18.0-553.16.1.rt7.357.el8_10
- kernel Rocky Linux 8 4.18.0-553.16.1.el8_10
rocky linux advisories RXSA-2024:5101RLSA-2024:5102RLSA-2024:5101
- git.kernel.org/stable/c/1b6de5e6575b56502665c65cf93b0ae6aa0f51ab commit
- git.kernel.org/stable/c/9705f447bf9a6cd088300ad2c407b5e1c6591091 commit
- git.kernel.org/stable/c/4318608dc28ef184158b4045896740716bea23f0 commit
- git.kernel.org/stable/c/7d0567842b78390dd9b60f00f1d8f838d540e325 commit
- git.kernel.org/stable/c/f4877225313d474659ee53150ccc3d553a978727 commit
- git.kernel.org/stable/c/e09cbe017311508c21e0739e97198a8388b98981 commit
- git.kernel.org/stable/c/18685451fc4e546fc0e718580d32df3c0e5c8272 commit
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2024-26921 updated cvss 5.5
kernel: inet: inet_defrag: prevent sk release while still in use
-
Red Hat Enterprise Linux 6 perf, kernel, python-perf, kernel-kdump, kernel-firmware, kernel-bootwrapper, +1 more Red Hat Enterprise Linux 7 perf, kernel, bpftool, kernel-rt, python-perf, kernel-kdump, +8 moreaffected: no fix planned “Out of support scope”
-
Red Hat CodeReady Linux Builder (v. 9) libperf 5.14.0-503.11.1.el9_5, kernel-debuginfo-common-s390x 5.14.0-503.11.1.el9_5, kernel-debuginfo-common-x86_64 5.14.0-503.11.1.el9_5, kernel-debuginfo-common-aarch64 5.14.0-503.11.1.el9_5, kernel-debuginfo-common-ppc64le 5.14.0-503.11.1.el9_5fixed: vendor fix RHSA-2024:9315
-
Red Hat CodeReady Linux Builder EUS (v.9.4) libperf 5.14.0-427.72.1.el9_4, kernel-debuginfo-common-s390x 5.14.0-427.72.1.el9_4, kernel-debuginfo-common-x86_64 5.14.0-427.72.1.el9_4, kernel-debuginfo-common-aarch64 5.14.0-427.72.1.el9_4, kernel-debuginfo-common-ppc64le 5.14.0-427.72.1.el9_4fixed: vendor fix RHSA-2025:8796
-
Red Hat Enterprise Linux AppStream (v. 9) rv 5.14.0-503.11.1.el9_5, perf 5.14.0-503.11.1.el9_5, rtla 5.14.0-503.11.1.el9_5, kernel-devel-matched 5.14.0-503.11.1.el9_5, kernel-64k-devel-matched 5.14.0-503.11.1.el9_5, kernel-debug-devel-matched 5.14.0-503.11.1.el9_5, +6 morefixed: vendor fix RHSA-2024:9315
-
Red Hat Enterprise Linux AppStream EUS (v.9.4) rv 5.14.0-427.72.1.el9_4, perf 5.14.0-427.72.1.el9_4, rtla 5.14.0-427.72.1.el9_4, kernel-devel-matched 5.14.0-427.72.1.el9_4, kernel-64k-devel-matched 5.14.0-427.72.1.el9_4, kernel-debug-devel-matched 5.14.0-427.72.1.el9_4, +6 morefixed: vendor fix RHSA-2025:8796
-
Red Hat Enterprise Linux BaseOS (v. 8) perf 4.18.0-553.16.1.el8_10, kernel 4.18.0-553.16.1.el8_10, bpftool 4.18.0-553.16.1.el8_10, kernel-core 4.18.0-553.16.1.el8_10, kernel-tools 4.18.0-553.16.1.el8_10, python3-perf 4.18.0-553.16.1.el8_10, +15 morefixed: vendor fix RHSA-2024:5101
-
Red Hat Enterprise Linux BaseOS (v. 9) bpftool 7.4.0-503.11.1.el9_5, kernel 5.14.0-503.11.1.el9_5, kernel-64k 5.14.0-503.11.1.el9_5, kernel-core 5.14.0-503.11.1.el9_5, kernel-tools 5.14.0-503.11.1.el9_5, python3-perf 5.14.0-503.11.1.el9_5, +29 morefixed: vendor fix RHSA-2024:9315
-
Red Hat Enterprise Linux BaseOS EUS (v.9.4) bpftool 7.3.0-427.72.1.el9_4, kernel 5.14.0-427.72.1.el9_4, kernel-64k 5.14.0-427.72.1.el9_4, kernel-core 5.14.0-427.72.1.el9_4, kernel-tools 5.14.0-427.72.1.el9_4, python3-perf 5.14.0-427.72.1.el9_4, +28 morefixed: vendor fix RHSA-2025:8796
show 8 moreshow fewer
-
Red Hat Enterprise Linux CRB (v. 8) kernel-debuginfo-common-x86_64 4.18.0-553.16.1.el8_10, kernel-debuginfo-common-aarch64 4.18.0-553.16.1.el8_10, kernel-debuginfo-common-ppc64le 4.18.0-553.16.1.el8_10fixed: vendor fix RHSA-2024:5101
-
Red Hat Enterprise Linux NFV (v. 8) kernel-rt 4.18.0-553.16.1.rt7.357.el8_10, kernel-rt-kvm 4.18.0-553.16.1.rt7.357.el8_10, kernel-rt-core 4.18.0-553.16.1.rt7.357.el8_10, kernel-rt-modules 4.18.0-553.16.1.rt7.357.el8_10, kernel-rt-debug-kvm 4.18.0-553.16.1.rt7.357.el8_10, kernel-rt-debug-core 4.18.0-553.16.1.rt7.357.el8_10, +4 morefixed: vendor fix RHSA-2024:5102
-
Red Hat Enterprise Linux Real Time (v. 9) kernel-rt 5.14.0-503.11.1.el9_5, kernel-rt-core 5.14.0-503.11.1.el9_5, kernel-rt-modules 5.14.0-503.11.1.el9_5, kernel-rt-debug-core 5.14.0-503.11.1.el9_5, kernel-rt-modules-core 5.14.0-503.11.1.el9_5, kernel-rt-debug-modules 5.14.0-503.11.1.el9_5, +4 morefixed: vendor fix RHSA-2024:9315
-
Red Hat Enterprise Linux Real Time EUS (v.9.4) kernel-rt 5.14.0-427.72.1.el9_4, kernel-rt-core 5.14.0-427.72.1.el9_4, kernel-rt-modules 5.14.0-427.72.1.el9_4, kernel-rt-debug-core 5.14.0-427.72.1.el9_4, kernel-rt-modules-core 5.14.0-427.72.1.el9_4, kernel-rt-debug-modules 5.14.0-427.72.1.el9_4, +4 morefixed: vendor fix RHSA-2025:8796
-
Red Hat Enterprise Linux Real Time for NFV (v. 9) kernel-rt 5.14.0-503.11.1.el9_5, kernel-rt-kvm 5.14.0-503.11.1.el9_5, kernel-rt-core 5.14.0-503.11.1.el9_5, kernel-rt-modules 5.14.0-503.11.1.el9_5, kernel-rt-debug-kvm 5.14.0-503.11.1.el9_5, kernel-rt-debug-core 5.14.0-503.11.1.el9_5, +6 morefixed: vendor fix RHSA-2024:9315
-
Red Hat Enterprise Linux Real Time for NFV EUS (v.9.4) kernel-rt 5.14.0-427.72.1.el9_4, kernel-rt-kvm 5.14.0-427.72.1.el9_4, kernel-rt-core 5.14.0-427.72.1.el9_4, kernel-rt-modules 5.14.0-427.72.1.el9_4, kernel-rt-debug-kvm 5.14.0-427.72.1.el9_4, kernel-rt-debug-core 5.14.0-427.72.1.el9_4, +6 morefixed: vendor fix RHSA-2025:8796
-
Red Hat Enterprise Linux RT (v. 8) kernel-rt 4.18.0-553.16.1.rt7.357.el8_10, kernel-rt-core 4.18.0-553.16.1.rt7.357.el8_10, kernel-rt-modules 4.18.0-553.16.1.rt7.357.el8_10, kernel-rt-debug-core 4.18.0-553.16.1.rt7.357.el8_10, kernel-rt-debug-modules 4.18.0-553.16.1.rt7.357.el8_10, kernel-rt-modules-extra 4.18.0-553.16.1.rt7.357.el8_10, +2 morefixed: vendor fix RHSA-2024:5102
-
Red Hat CodeReady Linux Builder (v. 9) kernel-cross-headers 5.14.0-503.11.1.el9_5 Red Hat Enterprise Linux AppStream (v. 9) kernel-headers 5.14.0-503.11.1.el9_5not affected: vulnerable code not present
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
CISA SSVC
- Exploitation
- none
- Automatable
- yes
- Technical impact
- partial
- Assessed
- 2 y ago
Exploit prediction
0.40% chance of exploitation in the next 30 days, higher than 34% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 7.8 | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| NVD | 3.1 | 5.5 | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H |
Affected products
- Linux Linux
Classification
- Technology feeds
References
-
git.kernel.org
/stable/c/1b6de5e6575b56502665c65cf93b0ae6aa0f51ab
patch
-
git.kernel.org
/stable/c/9705f447bf9a6cd088300ad2c407b5e1c6591091
patch
-
git.kernel.org
/stable/c/4318608dc28ef184158b4045896740716bea23f0
patch
-
git.kernel.org
/stable/c/7d0567842b78390dd9b60f00f1d8f838d540e325
patch
-
git.kernel.org
/stable/c/f4877225313d474659ee53150ccc3d553a978727
patch
-
git.kernel.org
/stable/c/e09cbe017311508c21e0739e97198a8388b98981
patch
-
git.kernel.org
/stable/c/18685451fc4e546fc0e718580d32df3c0e5c8272
patch
- lists.debian.org /debian-lts-announce/2025/03/msg00002.html
Sources
- CVE List CVE-2024-26921
- NVD CVE-2024-26921
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.