Google: sys-kernel/cchost-kernel-6_12, sys-kernel/csql-kernel-6_12, sys-kernel/csql-kernel-6_6, sys-kernel/lakitu-kernel-6_12, sys-kernel/lakitu-kernel-6_6, sys-kernel/lakitu-nc-kernel-6_12, sys-kernel/lakitu-nc-kernel-6_6, sys-kernel/lakitu-vgpu-kernel-6_6: security update to 19216.655.6

high Tenable Cloud Security Plugin ID 468643

Description

There are packages installed that are affected by a vulnerability referenced in the following CVE:

- In the Linux kernel, the following vulnerability has been resolved: net/sched: cls_api: Always acquire
rtnl_lock when destroying locked classifiers Another challenge with unlocked filters. There is a short
window in tc_new_tfilter where a tcf_proto can be found and briefly referenced by a totally unrelated,
unlocked classifier's request and cause a race. Feng created a poc which created this race with two
threads, one creating a u32 filter and other a flower filter in the same chain/prio: 1. Both threads enter
tc_new_tfilter, both find the chain empty, both drop filter_chain_lock 2. u32 finishes
tcf_proto_create("u32") first, calls tcf_chain_tp_insert_unique() -> inserts u32_tp into the chain 3.
flower finishes tcf_proto_create("flower") later, calls tcf_chain_tp_insert_unique() ->
tcf_chain_tp_find() now sees u32_tp already there, takes a reference on it, destroys flower's own tp_new
and returns u32_tp to the caller. Flower then hits the kind mismatch check (because it requested for kind
"flower" but tp->ops->kind is "u32") and goes through the errout path which calls tcf_proto_put() on
u32_tp. If the u32 thread has already gone through its own errout (its change() call failed on the PoC's
empty options) and dropped its create and insert refs, flower's put is the last one and drops u32_tp's
refcnt to zero. At this point tp->ops->destroy() runs in a context that never took rtnl_lock. When that
happens, it might cause a UAF like the following (illustrated by the PoC): [ +0.000710] BUG: KASAN: slab-
use-after-free in u32_init (net/sched/cls_u32.c:393) [ +0.000281] Read of size 8 at addr ffff888120022f00
by task poc_feng_xue/524 Call Trace: u32_init (net/sched/cls_u32.c:393) tc_new_tfilter
(net/sched/cls_api.c:2378) Allocated by task 526: u32_init (net/sched/cls_u32.c:378) tc_new_tfilter
(net/sched/cls_api.c:2378) Freed by task 522: kfree u32_destroy (net/sched/cls_u32.c:662)
tcf_proto_destroy (net/sched/cls_api.c:446) tcf_proto_put (net/sched/cls_api.c:459) tc_new_tfilter
(net/sched/cls_api.c:2459) Fix this by having tcf_proto_destroy() take rtnl_lock around tp->ops->destroy()
for locked classifiers whenever rtnl is not held. To explain why I used a temp variable "not_lockless" I'd
like to point to a semi-related note on rtnl_held vs TCF_PROTO_OPS_DOIT_UNLOCKED (adding here for future
cleanup if deemed necessary): The rtnl_held parameter and the TCF_PROTO_OPS_DOIT_UNLOCKED flag are
redundant sources of truth for whether rtnl_lock is held. Among the nine classifier destroy(..rtnl_held..)
callbacks, only flower consults the rtnl_held parameter which it propagates to tc_setup_cb_destroy() and
tc_setup_cb_call(). The other eight (u32, flow, bpf, cgroup, route, basic, fw, mall) ignore it entirely;->
those that call tc_setup_cb_destroy() (u32, bpf, mall) hardcode true always instead of forwarding the
parameter. A future cleanup should remove the rtnl_held parameter from the destroy callback signature
entirely and have callers rely solely on their knowledge whether they are running in an unlocked context.
(CVE-2026-74700)

Solution

Update the sys-kernel/cchost-kernel-6_12 library and its related packages to version 19216.655.6 or later.

See Also

https://storage.googleapis.com/cos-oval-vulnerability-feed/cos-125.oval.xml.tar.gz

Plugin Details

Severity: High

ID: 468643

Version: Revision 1.5

Type: Local

Published: 10/3/2026

Updated: 10/6/2026

Supported Sensors: Tenable Cloud Security, Tenable Self-Hosted Container Security

Risk Information

VPR

Risk Factor: Medium

Score: 4.9

Percentile: 58.15

Vendor

Vendor Severity: LOW

CVSS v2

Risk Factor: Medium

Base Score: 6.8

Temporal Score: 5

Vector: CVSS2#AV:L/AC:L/Au:S/C:C/I:C/A:C

CVSS Score Source: CVE-2026-74700

CVSS v3

Risk Factor: High

Base Score: 7.8

Temporal Score: 6.8

Vector: CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

Temporal Vector: CVSS:3.0/E:U/RL:O/RC:C

Vulnerability Information

Exploit Ease: No known exploits are available

Vulnerability Publication Date: 8/22/2026

Reference Information

CVE: CVE-2026-74700