CVE-2025-21702 json
pfifo_tail_enqueue: Drop new packet when sch->limit == 0
published 2025-02-18 20 mo ago modified 2026-10-15 25 d ago also EUVD-2025-4797
- cvss
- 7.8
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.3%
- EPSS 0.3% chance of exploitation in 30 days, percentile 20%
- public exploits
- 0
- none known
Summary
In the Linux kernel, the following vulnerability has been resolved:
pfifo_tail_enqueue: Drop new packet when sch->limit == 0
Expected behaviour: In case we reach scheduler's limit, pfifo_tail_enqueue() will drop a packet in scheduler's queue and decrease scheduler's qlen by one. Then, pfifo_tail_enqueue() enqueue new packet and increase scheduler's qlen by one. Finally, pfifo_tail_enqueue() return `NET_XMIT_CN` status code.
Weird behaviour: In case we set `sch->limit == 0` and trigger pfifo_tail_enqueue() on a scheduler that has no packet, the 'drop a packet' step will do nothing. This means the scheduler's qlen still has value equal 0. Then, we continue to enqueue new packet and increase scheduler's qlen by one. In summary, we can leverage pfifo_tail_enqueue() to increase qlen by one and return `NET_XMIT_CN` status code.
The problem is: Let's say we have two qdiscs: Qdisc_A and Qdisc_B. - Qdisc_A's type must have '->graft()' function to create parent/child relationship. Let's say Qdisc_A's type is `hfsc`. Enqueue packet to this qdisc will trigger `hfsc_enqueue`. - Qdisc_B's type is pfifo_head_drop. Enqueue packet to this qdisc will trigger `pfifo_tail_enqueue`. - Qdisc_B is configured to have `sch->limit == 0`. - Qdisc_A is configured to route the enqueued's packet to Qdisc_B.
Enqueue packet through Qdisc_A will lead to: - hfsc_enqueue(Qdisc_A) -> pfifo_tail_enqueue(Qdisc_B) - Qdisc_B->q.qlen += 1 - pfifo_tail_enqueue() return `NET_XMIT_CN` - hfsc_enqueue() check for `NET_XMIT_SUCCESS` and see `NET_XMIT_CN` => hfsc_enqueue() don't increase qlen of Qdisc_A.
The whole process lead to a situation where Qdisc_A->q.qlen == 0 and Qdisc_B->q.qlen == 1. Replace 'hfsc' with other type (for example: 'drr') still lead to the same problem. This violate the design where parent's qlen should equal to the sum of its childrens'qlen.
Bug impact: This issue can be used for user->kernel privilege escalation when it is reachable.
Patch / fix
- Linux Linux 5.4.291, 5.10.235, 5.15.179, 6.1.130, 6.6.83, 6.12.14, 6.13.3, 6.14
- linux Debian 12 6.1.133-1
- linux Debian 14, Debian 13 6.12.15-1
debian advisories DEBIAN-CVE-2025-21702
- linux Ubuntu 20.04 LTS 5.4.0-214.234
- linux Ubuntu 22.04 LTS 5.15.0-138.148
- linux Ubuntu 24.04 LTS 6.8.0-58.60
- linux-aws Ubuntu 20.04 LTS 5.4.0-1144.154
- linux-aws Ubuntu 22.04 LTS 5.15.0-1082.89
- linux-aws Ubuntu 24.04 LTS 6.8.0-1027.29
- linux-gcp Ubuntu 20.04 LTS 5.4.0-1147.156
- linux-gcp Ubuntu 22.04 LTS 5.15.0-1081.90
ubuntu advisories UBUNTU-CVE-2025-21702
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-611.5.1.el9_7
- rv RHEL 9 5.14.0-611.5.1.el9_7
- perf RHEL 9 5.14.0-611.5.1.el9_7
- rtla RHEL 9 5.14.0-611.5.1.el9_7
- libperf RHEL 9 5.14.0-611.5.1.el9_7
- kernel-rt RHEL 9 5.14.0-611.5.1.el9_7
- kernel-64k RHEL 9 5.14.0-611.5.1.el9_7
- kernel-core RHEL 9 5.14.0-611.5.1.el9_7
red hat advisories RHSA-2025:20518RHSA-2025:20095
- kernel-livepatch-MICRO-6-0-RT_Update_3 Linux Micro 6.0 9-1.2
- kernel-livepatch-MICRO-6-0-RT_Update_4 Linux Micro 6.1, Linux Micro 6.0 6-1.1
- kernel-livepatch-MICRO-6-0-RT_Update_5 Linux Micro 6.1, Linux Micro 6.0 5-1.1
- kernel-livepatch-MICRO-6-0-RT_Update_6 Linux Micro 6.1, Linux Micro 6.0 3-3.1
- kernel-livepatch-MICRO-6-0-RT_Update_7 Linux Micro 6.1, Linux Micro 6.0 3-1.3
- kernel-livepatch-MICRO-6-0-RT_Update_8 Linux Micro 6.1, Linux Micro 6.0 2-1.2
- kernel-livepatch-MICRO-6-0-RT_Update_2 Linux Micro 6.1, Linux Micro 6.0 9-1.1
- kernel-livepatch-MICRO-6-0_Update_6 Linux Micro 6.1, Linux Micro 6.0 3-3.1
suse advisories SUSE-SU-2025:4123-1SUSE-SU-2025:20578-1SUSE-SU-2025:20579-1SUSE-SU-2025:20580-1SUSE-SU-2025:20581-1SUSE-SU-2025:20582-1
- kernel AlmaLinux 10 6.12.0-124.8.1.el10_1
- rv AlmaLinux 10 6.12.0-124.8.1.el10_1
- perf AlmaLinux 10 6.12.0-124.8.1.el10_1
- rtla AlmaLinux 10 6.12.0-124.8.1.el10_1
- libperf AlmaLinux 10 6.12.0-124.8.1.el10_1
- kernel-rt AlmaLinux 10 6.12.0-124.8.1.el10_1
- kernel-64k AlmaLinux 10 6.12.0-124.8.1.el10_1
- kernel-core AlmaLinux 10 6.12.0-124.8.1.el10_1
almalinux advisories ALSA-2025:20095ALSA-2025:20518
- kernel Rocky Linux 10 6.12.0-124.8.1.el10_1
- kernel Rocky Linux 9 5.14.0-611.5.1.el9_7
rocky linux advisories RLSA-2025:20095RLSA-2025:20518
- git.kernel.org/stable/c/78285b53266d6d51fa4ff504a23df03852eba84e commit
- git.kernel.org/stable/c/7a9723ec27aff5674f1fd4934608937f1d650980 commit
- git.kernel.org/stable/c/a56a6e8589a9b98d8171611fbcc1e45a15fd2455 commit
- git.kernel.org/stable/c/020ecb76812a0526f4130ab5aeb6dc7c773e7ab9 commit
- git.kernel.org/stable/c/79a955ea4a2e5ddf4a36328959de0de496419888 commit
- git.kernel.org/stable/c/e40cb34b7f247fe2e366fd192700d1b4f38196ca commit
- git.kernel.org/stable/c/b6a079c3b6f95378f26e2aeda520cb3176f7067b commit
- git.kernel.org/stable/c/647cef20e649c576dff271e018d5d15d998b629d 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-2025-21702 updated cvss 7.0
kernel: pfifo_tail_enqueue: Drop new packet when sch->limit == 0
-
Red Hat Enterprise Linux 7 perf, kernel, bpftool, kernel-rt, python-perf, kernel-kdump, +8 more Red Hat Enterprise Linux 8 perf, kernel, bpftool, kernel-rt, kernel-core, kernel-tools, +29 moreaffected: workaround, no fix planned “Out of support scope”
-
Red Hat Enterprise Linux 9 kernel-rt, kernel-rt-kvm, kernel-rt-core, kernel-rt-modules, kernel-rt-debug-kvm, kernel-rt-debug-core, +12 moreaffected: workaround, no fix available
-
Red Hat CodeReady Linux Builder EUS (v.9.6) libperf 5.14.0-570.154.1.el9_6, kernel-debuginfo-common-s390x 5.14.0-570.154.1.el9_6, kernel-debuginfo-common-x86_64 5.14.0-570.154.1.el9_6, kernel-debuginfo-common-aarch64 5.14.0-570.154.1.el9_6, kernel-debuginfo-common-ppc64le 5.14.0-570.154.1.el9_6fixed: vendor fix RHSA-2026:94438
-
Red Hat Enterprise Linux AppStream (v. 9) rv 5.14.0-611.5.1.el9_7, perf 5.14.0-611.5.1.el9_7, rtla 5.14.0-611.5.1.el9_7, python3-perf 5.14.0-611.5.1.el9_7, kernel-devel-matched 5.14.0-611.5.1.el9_7, kernel-64k-devel-matched 5.14.0-611.5.1.el9_7, +7 morefixed: vendor fix RHSA-2025:20518
-
Red Hat Enterprise Linux AppStream (v. 10) rv 6.12.0-124.8.1.el10_1, perf 6.12.0-124.8.1.el10_1, rtla 6.12.0-124.8.1.el10_1, python3-perf 6.12.0-124.8.1.el10_1, kernel-devel-matched 6.12.0-124.8.1.el10_1, kernel-64k-devel-matched 6.12.0-124.8.1.el10_1, +7 morefixed: vendor fix RHSA-2025:20095
-
Red Hat Enterprise Linux AppStream EUS (v.9.6) rv 5.14.0-570.154.1.el9_6, perf 5.14.0-570.154.1.el9_6, rtla 5.14.0-570.154.1.el9_6, python3-perf 5.14.0-570.154.1.el9_6, kernel-devel-matched 5.14.0-570.154.1.el9_6, kernel-64k-devel-matched 5.14.0-570.154.1.el9_6, +7 morefixed: vendor fix RHSA-2026:94438
-
Red Hat Enterprise Linux BaseOS (v. 9) kernel 5.14.0-611.5.1.el9_7, kernel-64k 5.14.0-611.5.1.el9_7, kernel-core 5.14.0-611.5.1.el9_7, kernel-tools 5.14.0-611.5.1.el9_7, kernel-modules 5.14.0-611.5.1.el9_7, kernel-64k-core 5.14.0-611.5.1.el9_7, +27 morefixed: vendor fix RHSA-2025:20518
-
Red Hat Enterprise Linux BaseOS (v. 10) kernel 6.12.0-124.8.1.el10_1, kernel-64k 6.12.0-124.8.1.el10_1, kernel-core 6.12.0-124.8.1.el10_1, kernel-tools 6.12.0-124.8.1.el10_1, kernel-modules 6.12.0-124.8.1.el10_1, kernel-64k-core 6.12.0-124.8.1.el10_1, +28 morefixed: vendor fix RHSA-2025:20095
show 10 moreshow fewer
-
Red Hat Enterprise Linux BaseOS EUS (v.9.6) kernel 5.14.0-570.154.1.el9_6, kernel-64k 5.14.0-570.154.1.el9_6, kernel-core 5.14.0-570.154.1.el9_6, kernel-tools 5.14.0-570.154.1.el9_6, kernel-modules 5.14.0-570.154.1.el9_6, kernel-64k-core 5.14.0-570.154.1.el9_6, +27 morefixed: vendor fix RHSA-2026:94438
-
Red Hat Enterprise Linux CodeReady Linux Builder (v. 9) libperf 5.14.0-611.5.1.el9_7, kernel-debuginfo-common-s390x 5.14.0-611.5.1.el9_7, kernel-debuginfo-common-x86_64 5.14.0-611.5.1.el9_7, kernel-debuginfo-common-aarch64 5.14.0-611.5.1.el9_7, kernel-debuginfo-common-ppc64le 5.14.0-611.5.1.el9_7fixed: vendor fix RHSA-2025:20518
-
Red Hat Enterprise Linux CodeReady Linux Builder (v. 10) libperf 6.12.0-124.8.1.el10_1, kernel-debuginfo-common-s390x 6.12.0-124.8.1.el10_1, kernel-debuginfo-common-x86_64 6.12.0-124.8.1.el10_1, kernel-debuginfo-common-aarch64 6.12.0-124.8.1.el10_1, kernel-debuginfo-common-ppc64le 6.12.0-124.8.1.el10_1fixed: vendor fix RHSA-2025:20095
-
Red Hat Enterprise Linux Real Time (v. 9) kernel-rt 5.14.0-611.5.1.el9_7, kernel-rt-64k 5.14.0-611.5.1.el9_7, kernel-rt-core 5.14.0-611.5.1.el9_7, kernel-rt-modules 5.14.0-611.5.1.el9_7, kernel-rt-64k-core 5.14.0-611.5.1.el9_7, kernel-rt-debug-core 5.14.0-611.5.1.el9_7, +14 morefixed: vendor fix RHSA-2025:20518
-
Red Hat Enterprise Linux Real Time (v. 10) kernel-rt 6.12.0-124.8.1.el10_1, kernel-rt-64k 6.12.0-124.8.1.el10_1, kernel-rt-core 6.12.0-124.8.1.el10_1, kernel-rt-modules 6.12.0-124.8.1.el10_1, kernel-rt-64k-core 6.12.0-124.8.1.el10_1, kernel-rt-debug-core 6.12.0-124.8.1.el10_1, +14 morefixed: vendor fix RHSA-2025:20095
-
Red Hat Enterprise Linux Real Time EUS (v.9.6) kernel-rt 5.14.0-570.154.1.el9_6, kernel-rt-64k 5.14.0-570.154.1.el9_6, kernel-rt-core 5.14.0-570.154.1.el9_6, kernel-rt-modules 5.14.0-570.154.1.el9_6, kernel-rt-64k-core 5.14.0-570.154.1.el9_6, kernel-rt-debug-core 5.14.0-570.154.1.el9_6, +14 morefixed: vendor fix RHSA-2026:94438
-
Red Hat Enterprise Linux Real Time for NFV (v. 9) kernel-rt 5.14.0-611.5.1.el9_7, kernel-rt-core 5.14.0-611.5.1.el9_7, kernel-rt-modules 5.14.0-611.5.1.el9_7, kernel-rt-debug-core 5.14.0-611.5.1.el9_7, kernel-rt-modules-core 5.14.0-611.5.1.el9_7, kernel-rt-debug-modules 5.14.0-611.5.1.el9_7, +4 morefixed: vendor fix RHSA-2025:20518
-
Red Hat Enterprise Linux Real Time for NFV (v. 10) kernel-rt 6.12.0-124.8.1.el10_1, kernel-rt-core 6.12.0-124.8.1.el10_1, kernel-rt-modules 6.12.0-124.8.1.el10_1, kernel-rt-debug-core 6.12.0-124.8.1.el10_1, kernel-rt-modules-core 6.12.0-124.8.1.el10_1, kernel-rt-debug-modules 6.12.0-124.8.1.el10_1, +4 morefixed: vendor fix RHSA-2025:20095
-
Red Hat Enterprise Linux Real Time for NFV EUS (v.9.6) kernel-rt 5.14.0-570.154.1.el9_6, kernel-rt-kvm 5.14.0-570.154.1.el9_6, kernel-rt-core 5.14.0-570.154.1.el9_6, kernel-rt-modules 5.14.0-570.154.1.el9_6, kernel-rt-debug-kvm 5.14.0-570.154.1.el9_6, kernel-rt-debug-core 5.14.0-570.154.1.el9_6, +6 morefixed: vendor fix RHSA-2026:94438
-
Red Hat Enterprise Linux 6 perf, kernel, python-perf, kernel-kdump, kernel-firmware, kernel-bootwrapper, +1 morenot 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 ICSA-26-295-11 updated cvss 7.8
Siemens SIMATIC S7-1500 CPU 1518(F)-4 PN/DP MFP
-
Siemens SIMATIC S7-1500 CPU 1518-4 PN/DP MFP (6ES7518-4AX00-1AB0) >= 3.1.7 Siemens SIMATIC S7-1500 CPU 1518-4 PN/DP MFP (6ES7518-4AX00-1AC0) >= 3.1.7 Siemens SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP (6ES7518-4FX00-1AB0) >= 3.1.7 Siemens SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP (6ES7518-4FX00-1AC0) >= 3.1.7 Siemens SIPLUS S7-1500 CPU 1518-4 PN/DP MFP (6AG1518-4AX00-4AC0) >= 3.1.7affected: mitigation, no fix available
Facts from CISA's republication of the vendor's own advisory (CSAF); the linked advisory is the authoritative source. CISA notification · csaf
cisa ICSA-26-295-16 updated cvss 7.8
Siemens SIMATIC S7-1500 TM MFP
-
Siemens SIMATIC S7-1500 TM MFP - GNU/Linux subsystemaffected: mitigation, no fix available
Facts from CISA's republication of the vendor's own advisory (CSAF); the linked advisory is the authoritative source. CISA notification · csaf
cisa ICSA-26-209-04 updated cvss 7.8
Siemens SIMATIC S7-1500 CPU 1518(F)-4 PN/DP MFP
-
Siemens SIMATIC S7-1500 CPU 1518-4 PN/DP MFP (6ES7518-4AX00-1AB0) >= 3.1.6 Siemens SIMATIC S7-1500 CPU 1518-4 PN/DP MFP (6ES7518-4AX00-1AC0) >= 3.1.6 Siemens SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP (6ES7518-4FX00-1AB0) >= 3.1.6 Siemens SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP (6ES7518-4FX00-1AC0) >= 3.1.6 Siemens SIPLUS S7-1500 CPU 1518-4 PN/DP MFP (6AG1518-4AX00-4AC0) >= 3.1.6affected: mitigation, no fix available
Facts from CISA's republication of the vendor's own advisory (CSAF); the linked advisory is the authoritative source. CISA notification · csaf
cisa ICSA-25-162-05 updated cvss 7.8
Siemens SIMATIC S7-1500 CPU family
-
Siemens SIMATIC S7-1500 CPU 1518-4 PN/DP MFP (6ES7518-4AX00-1AB0) >= 3.1.5 Siemens SIMATIC S7-1500 CPU 1518-4 PN/DP MFP (6ES7518-4AX00-1AC0) >= 3.1.5 Siemens SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP (6ES7518-4FX00-1AB0) >= 3.1.5 Siemens SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP (6ES7518-4FX00-1AC0) >= 3.1.5 Siemens SIPLUS S7-1500 CPU 1518-4 PN/DP MFP (6AG1518-4AX00-4AC0) >= 3.1.5affected: mitigation, no fix available
Facts from CISA's republication of the vendor's own advisory (CSAF); the linked advisory is the authoritative source. CISA notification · csaf
Exploit prediction
0.28% chance of exploitation in the next 30 days, higher than 20% 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 | 7.0 | CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H |
Affected products
- Linux Linux
- Siemens SIMATIC S7-1500 CPU 1518-4 PN/DP MFP
- Siemens SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP
- Siemens SIMATIC S7-1500 TM MFP - GNU/Linux subsystem
- Siemens SIPLUS S7-1500 CPU 1518-4 PN/DP MFP
Classification
- Technology feeds
References
-
git.kernel.org
/stable/c/78285b53266d6d51fa4ff504a23df03852eba84e
patch
-
git.kernel.org
/stable/c/7a9723ec27aff5674f1fd4934608937f1d650980
patch
-
git.kernel.org
/stable/c/a56a6e8589a9b98d8171611fbcc1e45a15fd2455
patch
-
git.kernel.org
/stable/c/020ecb76812a0526f4130ab5aeb6dc7c773e7ab9
patch
-
git.kernel.org
/stable/c/79a955ea4a2e5ddf4a36328959de0de496419888
patch
-
git.kernel.org
/stable/c/e40cb34b7f247fe2e366fd192700d1b4f38196ca
patch
-
git.kernel.org
/stable/c/b6a079c3b6f95378f26e2aeda520cb3176f7067b
patch
-
git.kernel.org
/stable/c/647cef20e649c576dff271e018d5d15d998b629d
patch
- lists.debian.org /debian-lts-announce/2025/05/msg00045.html
- lists.debian.org /debian-lts-announce/2025/05/msg00030.html
- cert-portal.siemens.com /productcert/html/ssa-082556.html
- cert-portal.siemens.com /productcert/html/ssa-019113.html
- cert-portal.siemens.com /productcert/html/ssa-457936.html
- cert-portal.siemens.com /productcert/html/ssa-784472.html
Sources
- CVE List CVE-2025-21702
- NVD CVE-2025-21702
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.