CVE Catalog

CVE-2026-90248

Unknown
Published: Translated: NVD NIST

Summary

A bug was fixed in the Linux kernel's net/sched cls_api regarding teardown of an adopted proto when losing an insert race. When a request loses the race in tcf_chain_tp_insert_unique(), tp_created was not cleared, causing the error path to delete an active classifier belonging to the winning request. A tri-state variable was introduced to track the insert step outcome.

Risk Assessment

An active traffic classifier may be silently unlinked, leading to incorrect QoS and packet filtering behavior. In production environments this can cause unpredictable network behavior.

Recommendation

Update the Linux kernel to a version containing this fix. If updating is not possible, consult your system vendor for a workaround.

Other vulnerabilities in Linux kernel

See all
Original NVD description (English source)

In the Linux kernel, the following vulnerability has been resolved: net/sched: cls_api: fix teardown of an adopted proto on insert-race loss In tc_new_tfilter() the create branch sets tp_created = 1 before calling tcf_chain_tp_insert_unique(). When the caller loses the race (another request inserted a proto at the same chain/prio first), insert_unique() destroys the caller's own tp_new and returns the winner's proto with an extra reference. tp_created was never cleared, so the loser's errout path treated the winner's live proto as its own and called tcf_chain_tp_delete_empty() on it, silently unlinking an active classifier that the winning request already advertised via RTM_NEWTFILTER. Track the outcome of the insert step in a single tri-state variable so each errout path reacts correctly: - TP_NOT_CREATED: no proto created; pursue the old path. - TP_CREATED: proto inserted successfully; same code path as before. - TP_NOT_OWNED: New - lost the insert race; tp is another request's proto (chain ref already released by tp_new's destroy) Both errout reactions are single expressions derived from the state. This fix is motivated by the Sashiko's automated review of Patch (net/sched: cls_api: Always acquire rtnl_lock when destroying locked classifiers) [1][2]. The review identified the silent-unlink behaviour of an adopted proto's teardown when a request loses the tcf_chain_tp_insert_unique() race. [1] https://sashiko.dev/#/patchset/20260801125632.360365-1-jhs%40mojatatu.com [2] https://netdev-ai.bots.linux.dev/sashiko/#/patchset/20260801125632.360365-1-jhs%40mojatatu.com

Vulnerability data from NVD (NIST) · CISA KEV · EPSS