CVE-2026-46319 json
net/sched: act_ct: Only release RCU read lock after ct_ft
published 2026-06-09 5 mo ago modified 2026-10-19 20 d ago also EUVD-2026-35409
- cvss
- 7.8
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.1%
- EPSS 0.1% chance of exploitation in 30 days, percentile 1%
- public exploits
- 0
- none known
Summary
In the Linux kernel, the following vulnerability has been resolved:
net/sched: act_ct: Only release RCU read lock after ct_ft
When looking up a flow table in act_ct in tcf_ct_flow_table_get(), rhashtable_lookup_fast() internally opens and closes an RCU read critical section before returning ct_ft. The tcf_ct_flow_table_cleanup_work() can complete before refcount_inc_not_zero() is invoked on the returned ct_ft resulting in a UAF on the already freed ct_ft object. This vulnerability can lead to privilege escalation.
Analysis from zdi-disclosures@trendmicro.com: When initializing act_ct, tcf_ct_init() is called, which internally triggers tcf_ct_flow_table_get().
static int tcf_ct_flow_table_get(struct net *net, struct tcf_ct_params *params)
{ struct zones_ht_key key = { .net = net, .zone = params->zone }; struct tcf_ct_flow_table *ct_ft; int err = -ENOMEM;
mutex_lock(&zones_mutex); ct_ft = rhashtable_lookup_fast(&zones_ht, &key, zones_params); // [1] if (ct_ft && refcount_inc_not_zero(&ct_ft->ref)) // [2] goto out_unlock; ... }
static __always_inline void *rhashtable_lookup_fast( struct rhashtable *ht, const void *key, const struct rhashtable_params params) { void *obj;
rcu_read_lock(); obj = rhashtable_lookup(ht, key, params); rcu_read_unlock();
return obj; }
At [1], rhashtable_lookup_fast() looks up and returns the corresponding ct_ft from zones_ht . The lookup is performed within an RCU read critical section through rcu_read_lock() / rcu_read_unlock(), which prevents the object from being freed. However, at the point of function return, rcu_read_unlock() has already been called, and there is nothing preventing ct_ft from being freed before reaching refcount_inc_not_zero(&ct_ft->ref) at [2]. This interval becomes the race window, during which ct_ft can be freed.
Free Process:
tcf_ct_flow_table_put() is executed through the path tcf_ct_cleanup() call_rcu() tcf_ct_params_free_rcu() tcf_ct_params_free() tcf_ct_flow_table_put().
static void tcf_ct_flow_table_put(struct tcf_ct_flow_table *ct_ft) { if (refcount_dec_and_test(&ct_ft->ref)) { rhashtable_remove_fast(&zones_ht, &ct_ft->node, zones_params); INIT_RCU_WORK(&ct_ft->rwork, tcf_ct_flow_table_cleanup_work); // [3] queue_rcu_work(act_ct_wq, &ct_ft->rwork); } }
At [3], tcf_ct_flow_table_cleanup_work() is scheduled as RCU work
static void tcf_ct_flow_table_cleanup_work(struct work_struct *work)
{ struct tcf_ct_flow_table *ct_ft; struct flow_block *block;
ct_ft = container_of(to_rcu_work(work), struct tcf_ct_flow_table, rwork); nf_flow_table_free(&ct_ft->nf_ft); block = &ct_ft->nf_ft.flow_block; down_write(&ct_ft->nf_ft.flow_block_lock); WARN_ON(!list_empty(&block->cb_list)); up_write(&ct_ft->nf_ft.flow_block_lock); kfree(ct_ft); // [4]
module_put(THIS_MODULE); }
tcf_ct_flow_table_cleanup_work() frees ct_ft at [4]. When this function executes between [1] and [2], UAF occurs.
This race condition has a very short race window, making it generally difficult to trigger. Therefore, to trigger the vulnerability an msleep(100) was inserted after[1]
Patch / fix
- Linux Linux 5.10.258, 5.15.209, 6.1.175, 6.6.141, 6.12.91, 6.18.33, 7.0.10, 7.1
- linux Debian 12 6.1.176-1
- linux Debian 13 6.12.94-1
- linux Debian 14 7.0.10-1
debian advisories DEBIAN-CVE-2026-46319
- linux Ubuntu 22.04 LTS 5.15.0-186.196
- linux Ubuntu 24.04 LTS 6.8.0-136.136
- linux Ubuntu 26.04 LTS 7.0.0-28.28
- linux-aws Ubuntu 22.04 LTS 5.15.0-1112.119
- linux-aws Ubuntu 24.04 LTS 6.8.0-1061.64
- linux-aws Ubuntu 26.04 LTS 7.0.0-1009.9
- linux-gcp Ubuntu 22.04 LTS 5.15.0-1112.122
- linux-gcp Ubuntu 24.04 LTS 6.8.0-1064.72
ubuntu advisories UBUNTU-CVE-2026-46319
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 10.2 6.12.0-211.66.1.el10_2
- rv RHEL 10.2 6.12.0-211.66.1.el10_2
- perf RHEL 10.2 6.12.0-211.66.1.el10_2
- rtla RHEL 10.2 6.12.0-211.66.1.el10_2
- libperf RHEL 10.2 6.12.0-211.66.1.el10_2
- kernel-rt RHEL 10.2 6.12.0-211.66.1.el10_2
- kernel-64k RHEL 10.2 6.12.0-211.66.1.el10_2
- kernel-core RHEL 10.2 6.12.0-211.66.1.el10_2
red hat advisories RHSA-2026:83207RHSA-2026:83156RHSA-2026:75747RHSA-2026:75746
- kernel-livepatch-MICRO-6-0_Update_21 Linux Micro 6.1, Linux Micro 6.0 5-1.1
- kernel-livepatch-MICRO-6-0_Update_22 Linux Micro 6.1, Linux Micro 6.0 5-1.1
- kernel-livepatch-MICRO-6-0_Update_23 Linux Micro 6.1, Linux Micro 6.0 5-1.1
- kernel-livepatch-MICRO-6-0_Update_24 Linux Micro 6.1, Linux Micro 6.0 4-1.1
- kernel-livepatch-MICRO-6-0_Update_25 Linux Micro 6.1, Linux Micro 6.0 3-1.1
- kernel-livepatch-MICRO-6-0-RT_Update_14 Linux Micro 6.1, Linux Micro 6.0 11-1.1
- kernel-livepatch-MICRO-6-0-RT_Update_10 Linux Micro 6.1, Linux Micro 6.0 20-1.1
- kernel-livepatch-MICRO-6-0-RT_Update_11 Linux Micro 6.1, Linux Micro 6.0 16-1.1
suse advisories SUSE-SU-2026:23483-1SUSE-SU-2026:23484-1SUSE-SU-2026:23485-1SUSE-SU-2026:23486-1SUSE-SU-2026:23487-1SUSE-SU-2026:23531-1
- kernel-rt openSUSE Leap 16.0 6.12.0-160000.36.1
- dtb-aarch64 openSUSE Leap 16.0 6.12.0-160000.36.1
- kernel-64kb openSUSE Leap 16.0 6.12.0-160000.36.1
- kernel-syms openSUSE Leap 16.0 6.12.0-160000.36.1
- kernel-azure openSUSE Leap 16.0 6.12.0-160000.36.1
- kernel-obs-qa openSUSE Leap 16.0 6.12.0-160000.36.1
- kernel-source openSUSE Leap 16.0 6.12.0-160000.36.1
- kernel-default openSUSE Leap 16.0 6.12.0-160000.36.1
opensuse advisories openSUSE-SU-2026:21388-1openSUSE-SU-2026:11014-1
- kernel AlmaLinux 9 5.14.0-687.58.1.el9_8
- rv AlmaLinux 9 5.14.0-687.58.1.el9_8
- perf AlmaLinux 9 5.14.0-687.58.1.el9_8
- rtla AlmaLinux 9 5.14.0-687.58.1.el9_8
- libperf AlmaLinux 9 5.14.0-687.58.1.el9_8
- kernel-rt AlmaLinux 9 5.14.0-687.58.1.el9_8
- kernel-64k AlmaLinux 9 5.14.0-687.58.1.el9_8
- kernel-core AlmaLinux 9 5.14.0-687.58.1.el9_8
almalinux advisories ALSA-2026:83156ALSA-2026:83207ALSA-2026:75746ALSA-2026:75747
- kernel Rocky Linux 10 6.12.0-211.66.1.el10_2
- kernel Rocky Linux 9 5.14.0-687.58.1.el9_8
- kernel-rt Rocky Linux 8 4.18.0-553.171.1.rt7.512.el8_10
- kernel Rocky Linux 8 4.18.0-553.171.1.el8_10
rocky linux advisories RLSA-2026:83207RLSA-2026:83156RLSA-2026:75746RLSA-2026:75747
- git.kernel.org/stable/c/ece578ca61e572df96cfc80456357ebfae0b4b9e commit
- git.kernel.org/stable/c/a2e0c045c87aa252eb61412e67dd91f2c2b19f81 commit
- git.kernel.org/stable/c/67c9ecc9f2575273ed1323e312881fc98ac83d6d commit
- git.kernel.org/stable/c/f23424a0ddadb494d4bd57056a7ca703312d3a7b commit
- git.kernel.org/stable/c/17dfb67cb399b660105d9a8c6100851c0d0cdc70 commit
- git.kernel.org/stable/c/4c727c6967a41b37efe0f26332ca9ec5b74785a3 commit
- git.kernel.org/stable/c/3e20e1b3058e0b94638e7b931c138e840e266724 commit
- git.kernel.org/stable/c/f462dca0c8415bf0058d0ffa476354c4476d0f09 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-2026-46319 updated cvss 7.0
kernel: net/sched: act_ct: Only release RCU read lock after ct_ft
-
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 “To mitigate this issue, prevent module act_ct from being loaded. Please see https://access.redhat.com/solutions/41278 for how to blacklist a kernel module to prevent it from loading automatically.”
-
Red Hat Enterprise Linux kernel-modules-internal 6.12.0-211.66.1.el10_2fixed: vendor fix “To mitigate this issue, prevent module act_ct from being loaded. Please see https://access.redhat.com/solutions/41278 for how to blacklist a kernel module to prevent it from loading automatically.” RHSA-2026:83207
-
Red Hat Enterprise Linux AppStream (v. 9) rv 5.14.0-687.58.1.el9_8, perf 5.14.0-687.58.1.el9_8, rtla 5.14.0-687.58.1.el9_8, python3-perf 5.14.0-687.58.1.el9_8, kernel-devel-matched 5.14.0-687.58.1.el9_8, kernel-64k-devel-matched 5.14.0-687.58.1.el9_8, +7 morefixed: vendor fix “To mitigate this issue, prevent module act_ct from being loaded. Please see https://access.redhat.com/solutions/41278 for how to blacklist a kernel module to prevent it from loading automatically.” RHSA-2026:83156
-
Red Hat Enterprise Linux AppStream (v. 10) rv 6.12.0-211.66.1.el10_2, perf 6.12.0-211.66.1.el10_2, rtla 6.12.0-211.66.1.el10_2, python3-perf 6.12.0-211.66.1.el10_2, kernel-devel-matched 6.12.0-211.66.1.el10_2, kernel-64k-devel-matched 6.12.0-211.66.1.el10_2, +7 morefixed: vendor fix “To mitigate this issue, prevent module act_ct from being loaded. Please see https://access.redhat.com/solutions/41278 for how to blacklist a kernel module to prevent it from loading automatically.” RHSA-2026:83207
-
Red Hat Enterprise Linux BaseOS (v. 8) perf 4.18.0-553.171.1.el8_10, kernel 4.18.0-553.171.1.el8_10, bpftool 4.18.0-553.171.1.el8_10, kernel-core 4.18.0-553.171.1.el8_10, kernel-tools 4.18.0-553.171.1.el8_10, python3-perf 4.18.0-553.171.1.el8_10, +15 morefixed: vendor fix “To mitigate this issue, prevent module act_ct from being loaded. Please see https://access.redhat.com/solutions/41278 for how to blacklist a kernel module to prevent it from loading automatically.” RHSA-2026:75747
-
Red Hat Enterprise Linux BaseOS (v. 9) kernel 5.14.0-687.58.1.el9_8, kernel-64k 5.14.0-687.58.1.el9_8, kernel-core 5.14.0-687.58.1.el9_8, kernel-tools 5.14.0-687.58.1.el9_8, kernel-modules 5.14.0-687.58.1.el9_8, kernel-64k-core 5.14.0-687.58.1.el9_8, +27 morefixed: vendor fix “To mitigate this issue, prevent module act_ct from being loaded. Please see https://access.redhat.com/solutions/41278 for how to blacklist a kernel module to prevent it from loading automatically.” RHSA-2026:83156
-
Red Hat Enterprise Linux BaseOS (v. 10) kernel 6.12.0-211.66.1.el10_2, kernel-64k 6.12.0-211.66.1.el10_2, kernel-core 6.12.0-211.66.1.el10_2, kernel-tools 6.12.0-211.66.1.el10_2, kernel-modules 6.12.0-211.66.1.el10_2, kernel-64k-core 6.12.0-211.66.1.el10_2, +28 morefixed: vendor fix “To mitigate this issue, prevent module act_ct from being loaded. Please see https://access.redhat.com/solutions/41278 for how to blacklist a kernel module to prevent it from loading automatically.” RHSA-2026:83207
-
Red Hat Enterprise Linux CodeReady Linux Builder (v. 9) libperf 5.14.0-687.58.1.el9_8, kernel-debuginfo-common-s390x 5.14.0-687.58.1.el9_8, kernel-debuginfo-common-x86_64 5.14.0-687.58.1.el9_8, kernel-debuginfo-common-aarch64 5.14.0-687.58.1.el9_8, kernel-debuginfo-common-ppc64le 5.14.0-687.58.1.el9_8fixed: vendor fix “To mitigate this issue, prevent module act_ct from being loaded. Please see https://access.redhat.com/solutions/41278 for how to blacklist a kernel module to prevent it from loading automatically.” RHSA-2026:83156
show 10 moreshow fewer
-
Red Hat Enterprise Linux CodeReady Linux Builder (v. 10) libperf 6.12.0-211.66.1.el10_2, kernel-debuginfo-common-s390x 6.12.0-211.66.1.el10_2, kernel-debuginfo-common-x86_64 6.12.0-211.66.1.el10_2, kernel-debuginfo-common-aarch64 6.12.0-211.66.1.el10_2, kernel-debuginfo-common-ppc64le 6.12.0-211.66.1.el10_2fixed: vendor fix “To mitigate this issue, prevent module act_ct from being loaded. Please see https://access.redhat.com/solutions/41278 for how to blacklist a kernel module to prevent it from loading automatically.” RHSA-2026:83207
-
Red Hat Enterprise Linux CRB (v. 8) kernel-debuginfo-common-x86_64 4.18.0-553.171.1.el8_10, kernel-debuginfo-common-aarch64 4.18.0-553.171.1.el8_10, kernel-debuginfo-common-ppc64le 4.18.0-553.171.1.el8_10fixed: vendor fix “To mitigate this issue, prevent module act_ct from being loaded. Please see https://access.redhat.com/solutions/41278 for how to blacklist a kernel module to prevent it from loading automatically.” RHSA-2026:75747
-
Red Hat Enterprise Linux Hidden (v. 10) kernel-modules-internal 6.12.0-211.66.1.el10_2, kernel-debuginfo-common-x86_64 6.12.0-211.66.1.el10_2fixed: vendor fix “To mitigate this issue, prevent module act_ct from being loaded. Please see https://access.redhat.com/solutions/41278 for how to blacklist a kernel module to prevent it from loading automatically.” RHSA-2026:83207
-
Red Hat Enterprise Linux NFV (v. 8) kernel-rt 4.18.0-553.171.1.rt7.512.el8_10, kernel-rt-kvm 4.18.0-553.171.1.rt7.512.el8_10, kernel-rt-core 4.18.0-553.171.1.rt7.512.el8_10, kernel-rt-modules 4.18.0-553.171.1.rt7.512.el8_10, kernel-rt-debug-kvm 4.18.0-553.171.1.rt7.512.el8_10, kernel-rt-debug-core 4.18.0-553.171.1.rt7.512.el8_10, +4 morefixed: vendor fix “To mitigate this issue, prevent module act_ct from being loaded. Please see https://access.redhat.com/solutions/41278 for how to blacklist a kernel module to prevent it from loading automatically.” RHSA-2026:75746
-
Red Hat Enterprise Linux Real Time (v. 9) kernel-rt 5.14.0-687.58.1.el9_8, kernel-rt-64k 5.14.0-687.58.1.el9_8, kernel-rt-core 5.14.0-687.58.1.el9_8, kernel-rt-modules 5.14.0-687.58.1.el9_8, kernel-rt-64k-core 5.14.0-687.58.1.el9_8, kernel-rt-debug-core 5.14.0-687.58.1.el9_8, +14 morefixed: vendor fix “To mitigate this issue, prevent module act_ct from being loaded. Please see https://access.redhat.com/solutions/41278 for how to blacklist a kernel module to prevent it from loading automatically.” RHSA-2026:83156
-
Red Hat Enterprise Linux Real Time (v. 10) kernel-rt 6.12.0-211.66.1.el10_2, kernel-rt-64k 6.12.0-211.66.1.el10_2, kernel-rt-core 6.12.0-211.66.1.el10_2, kernel-rt-modules 6.12.0-211.66.1.el10_2, kernel-rt-64k-core 6.12.0-211.66.1.el10_2, kernel-rt-debug-core 6.12.0-211.66.1.el10_2, +14 morefixed: vendor fix “To mitigate this issue, prevent module act_ct from being loaded. Please see https://access.redhat.com/solutions/41278 for how to blacklist a kernel module to prevent it from loading automatically.” RHSA-2026:83207
-
Red Hat Enterprise Linux Real Time for NFV (v. 9) kernel-rt 5.14.0-687.58.1.el9_8, kernel-rt-core 5.14.0-687.58.1.el9_8, kernel-rt-modules 5.14.0-687.58.1.el9_8, kernel-rt-debug-core 5.14.0-687.58.1.el9_8, kernel-rt-modules-core 5.14.0-687.58.1.el9_8, kernel-rt-debug-modules 5.14.0-687.58.1.el9_8, +4 morefixed: vendor fix “To mitigate this issue, prevent module act_ct from being loaded. Please see https://access.redhat.com/solutions/41278 for how to blacklist a kernel module to prevent it from loading automatically.” RHSA-2026:83156
-
Red Hat Enterprise Linux Real Time for NFV (v. 10) kernel-rt 6.12.0-211.66.1.el10_2, kernel-rt-core 6.12.0-211.66.1.el10_2, kernel-rt-modules 6.12.0-211.66.1.el10_2, kernel-rt-debug-core 6.12.0-211.66.1.el10_2, kernel-rt-modules-core 6.12.0-211.66.1.el10_2, kernel-rt-debug-modules 6.12.0-211.66.1.el10_2, +4 morefixed: vendor fix “To mitigate this issue, prevent module act_ct from being loaded. Please see https://access.redhat.com/solutions/41278 for how to blacklist a kernel module to prevent it from loading automatically.” RHSA-2026:83207
-
Red Hat Enterprise Linux RT (v. 8) kernel-rt 4.18.0-553.171.1.rt7.512.el8_10, kernel-rt-core 4.18.0-553.171.1.rt7.512.el8_10, kernel-rt-modules 4.18.0-553.171.1.rt7.512.el8_10, kernel-rt-debug-core 4.18.0-553.171.1.rt7.512.el8_10, kernel-rt-debug-modules 4.18.0-553.171.1.rt7.512.el8_10, kernel-rt-modules-extra 4.18.0-553.171.1.rt7.512.el8_10, +2 morefixed: vendor fix “To mitigate this issue, prevent module act_ct from being loaded. Please see https://access.redhat.com/solutions/41278 for how to blacklist a kernel module to prevent it from loading automatically.” RHSA-2026:75746
-
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 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 SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- total
- Assessed
- 23 d ago
Exploit prediction
0.10% chance of exploitation in the next 30 days, higher than 1% 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 |
Affected products
- Linux Linux
Classification
- Weakness
- Technology feeds
References
-
git.kernel.org
/stable/c/ece578ca61e572df96cfc80456357ebfae0b4b9e
patch
-
git.kernel.org
/stable/c/a2e0c045c87aa252eb61412e67dd91f2c2b19f81
patch
-
git.kernel.org
/stable/c/67c9ecc9f2575273ed1323e312881fc98ac83d6d
patch
-
git.kernel.org
/stable/c/f23424a0ddadb494d4bd57056a7ca703312d3a7b
patch
-
git.kernel.org
/stable/c/17dfb67cb399b660105d9a8c6100851c0d0cdc70
patch
-
git.kernel.org
/stable/c/4c727c6967a41b37efe0f26332ca9ec5b74785a3
patch
-
git.kernel.org
/stable/c/3e20e1b3058e0b94638e7b931c138e840e266724
patch
-
git.kernel.org
/stable/c/f462dca0c8415bf0058d0ffa476354c4476d0f09
patch
Sources
- CVE List CVE-2026-46319
- NVD CVE-2026-46319
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.