Bug 2555227 (CVE-2026-98851) - CVE-2026-98851 kernel: netfilter: nft_flow_offload: drop flowtable reference on init error path
Summary: CVE-2026-98851 kernel: netfilter: nft_flow_offload: drop flowtable reference ...
Keywords:
Status: NEW
Alias: CVE-2026-98851
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
low
low
Target Milestone: ---
Assignee: Product Security DevOps Team
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2026-10-18 16:03 UTC by OSIDB Bzimport
Modified: 2026-10-23 11:27 UTC (History)
17 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed:
Embargoed:


Attachments (Terms of Use)

Description OSIDB Bzimport 2026-10-18 16:03:12 UTC
In the Linux kernel, the following vulnerability has been resolved:

netfilter: nft_flow_offload: drop flowtable reference on init error path

nft_flow_offload_init() bumps the flowtable use count with
nft_use_inc() before calling nf_ct_netns_get().  When the latter
fails, the error is returned as-is and the reference is leaked.

The upper layers do not balance it either: nf_tables_newexpr()
clears expr->ops when the expression init callback fails, so the
nft_expr_more() iteration in nft_rule_expr_deactivate() and
nf_tables_rule_destroy() stops right before the failed expression
and its ->destroy callback, which would drop the reference, never
runs.

Each failed rule addition therefore leaks one flowtable reference
and the flowtable can no longer be removed: NFT_MSG_DELFLOWTABLE
keeps reporting -EBUSY even though no rule references it.

Save the nf_ct_netns_get() return value and undo the nft_use_inc()
when it fails, restoring the inc/dec pairing within
nft_flow_offload_init() itself.


Note You need to log in before you can comment on or make changes to this bug.