---
id: CVE-2026-23270
title: >-
  In the Linux kernel, the following vulnerability has been resolved:


  net/sched: Only allow act_ct to bind to clsact/ingress qdiscs and shared
  blocks


  As Paolo said earlier [1]:


  "Since the blamed commit below, classify can return TC_ACT_…
summary: >-
  In the Linux kernel, the following vulnerability has been resolved:


  net/sched: Only allow act_ct to bind to clsact/ingress qdiscs and shared
  blocks


  As Paolo said earlier [1]:


  "Since the blamed commit below, classify can return TC_ACT_…
severity: high
cvss: 7.8
cvssVector: 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'
cwe:
  - CWE-416
vendor: linux
product: linux_kernel
affected:
  - 'linux_kernel >= 5.15.148, < 5.15.203'
  - 'linux_kernel >= 6.1.75, < 6.1.167'
  - 'linux_kernel >= 6.6.14, < 6.6.130'
  - 'linux_kernel >= 6.7.2, < 6.8'
  - 'linux_kernel >= 6.8, < 6.12.77'
  - 'linux_kernel >= 6.13, < 6.18.18'
  - 'linux_kernel >= 6.19, < 6.19.8'
  - linux_kernel = 7.0
patched:
  - linux_kernel 6.19.8
published: '2026-03-18'
updated: '2026-10-15'
sourceUpdated: '2026-10-15T02:18:45.140'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-23270'
references:
  - url: 'https://git.kernel.org/stable/c/11cb63b0d1a0685e0831ae3c77223e002ef18189'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/380ad8b7c65ea7aa10ef2258297079ed5ac1f5b6'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/524ce8b4ea8f64900b6c52b6a28df74f6bc0801e'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/5a110ddcc99bda77a28598b3555fe009eaab3828'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/9deda0fcda5c1f388c5e279541850b71a2ccfcf4'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/bc4e5bb529823a09f02dbe96169de679a9db26e0'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/fb3c380a54e33d1fd272cc342faa906d787d7ef1'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://cert-portal.siemens.com/productcert/html/ssa-019113.html'
    label: 0b142b55-0307-4c5a-b3c9-f314f3fb7c5e
  - url: 'https://cert-portal.siemens.com/productcert/html/ssa-082556.html'
    label: 0b142b55-0307-4c5a-b3c9-f314f3fb7c5e
  - url: 'https://cert-portal.siemens.com/productcert/html/ssa-457936.html'
    label: 0b142b55-0307-4c5a-b3c9-f314f3fb7c5e
  - url: 'https://cert-portal.siemens.com/productcert/html/ssa-784472.html'
    label: 0b142b55-0307-4c5a-b3c9-f314f3fb7c5e
tags:
  - nvd
  - cve.org
epss: 0.00134
epssPercentile: 0.0288
ingestedAt: '2026-09-08T15:33:26.993Z'
ssvc:
  exploitation: none
  automatable: 'no'
  technicalImpact: total
  timestamp: '2026-10-16T15:07:05.717761Z'
---

## Overview

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

net/sched: Only allow act_ct to bind to clsact/ingress qdiscs and shared blocks

As Paolo said earlier [1]:

"Since the blamed commit below, classify can return TC_ACT_CONSUMED while
the current skb being held by the defragmentation engine. As reported by
GangMin Kim, if such packet is that may cause a UaF when the defrag engine
later on tries to tuch again such packet."

act_ct was never meant to be used in the egress path, however some users
are attaching it to egress today [2]. Attempting to reach a middle
ground, we noticed that, while most qdiscs are not handling
TC_ACT_CONSUMED, clsact/ingress qdiscs are. With that in mind, we
address the issue by only allowing act_ct to bind to clsact/ingress
qdiscs and shared blocks. That way it's still possible to attach act_ct to
egress (albeit only with clsact).

[1] https://lore.kernel.org/netdev/674b8cbfc385c6f37fb29a1de08d8fe5c2b0fbee.1771321118.git.pabeni@redhat.com/
[2] https://lore.kernel.org/netdev/cc6bfb4a-4a2b-42d8-b9ce-7ef6644fb22b@ovn.org/

## Affected

- `linux_kernel >= 5.15.148, < 5.15.203`
- `linux_kernel >= 6.1.75, < 6.1.167`
- `linux_kernel >= 6.6.14, < 6.6.130`
- `linux_kernel >= 6.7.2, < 6.8`
- `linux_kernel >= 6.8, < 6.12.77`
- `linux_kernel >= 6.13, < 6.18.18`
- `linux_kernel >= 6.19, < 6.19.8`
- `linux_kernel = 7.0`

## Remediation

Upgrade past the affected range:

- `linux_kernel 6.19.8`
