Missing Release of Resource after Effective Lifetime Affecting kernel-rt-debug-modules-extra package, versions *


Severity

Recommended
0.0
low
0
10

Based on CentOS security rating.

Threat Intelligence

EPSS
0.17% (6th percentile)

Do your applications use this vulnerable package?

In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.

Test your applications
  • Snyk IDSNYK-CENTOS10-KERNELRTDEBUGMODULESEXTRA-21673829
  • published24 Oct 2026
  • disclosed18 Oct 2026

Introduced: 18 Oct 2026

NewCVE-2026-98811  (opens in a new tab)
CWE-772  (opens in a new tab)

How to fix?

There is no fixed version for Centos:10 kernel-rt-debug-modules-extra.

NVD Description

Note: Versions mentioned in the description apply only to the upstream kernel-rt-debug-modules-extra package and not the kernel-rt-debug-modules-extra package as distributed by Centos. See How to fix? for Centos:10 relevant fixed versions and status.

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

net/sched: cls_api: reclaim an empty proto on the error path

Two racing tc filter add requests on the same chain/prio of an unlocked classifier both run change() on the shared proto and both can fail: the winner's tcf_chain_tp_delete_empty() attempt gives up because the loser's handle is still in the idr, and the loser's error path drops only its own reference without a second reclamation attempt. The empty proto stays linked in the chain, holding the chain reference, a block reference and the classifier module reference until the chain or block is torn down.

Reclaim the proto on the error path of any failed request that holds a proto reference. The reclamation is emptiness-gated: tcf_chain_tp_delete_empty() unlinks the proto only when delete_empty() admits it is empty, so a live shared proto is never unlinked. A proto the request created is reclaimed unconditionally - it is the only owner, so marking it for deletion is safe even without a delete_empty callback. Classifiers without one (the check marks the proto unconditionally) are rtnl-serialized, so the raced window this guard closes cannot arise for them.

This is a follow-up to commit d4e359b3608a ("net/sched: cls_api: fix teardown of an adopted proto on insert-race loss"), which stopped the loser of the insert race from unlinking the winner's live proto but left the empty-proto residual in place.

Conditions to recreate:

  • CONFIG_NET_CLS_FLOWER=y; veth pair
  • tc qdisc add dev veth0 ingress
  • two concurrent tc filter add dev veth0 ingress protocol ip pref 1 flower skip_sw ... action drop (both fail in fl_hw_replace_filter after publishing their handle in the idr); repeat in a loop
  • an empty flower tp stays linked after both requests fail; visible as a bare filter protocol ip pref 1 flower chain 0 header in tc filter show with no filter entries
  • CAP_NET_ADMIN (namespace-local via unshare -Urn suffices)

CVSS Base Scores

version 3.1