CVE-2026-98851
NoneCVSS
—
EPSS
0.2%
Published
Oct 18, 2026
CISA due date
—
Cloudanix analysis
A bug in the Linux kernel's network filtering code can leave certain network tables stuck and impossible to remove after setup errors occur.
- Exploitation
- Local Privilege
- Attacker needs
- Low Privilege
- Complexity
- Moderate
- Impact
- Denial Of Service
- Component
- OS kernel
- Class
- Other
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Reference leak in nft_flow_offload_init when nf_ct_netns_get fails after nft_use_inc, preventing flowtable deletion via NFT_MSG_DELFLOWTABLE returning EBUSY.
Why it matters to the business
Network administrators lose the ability to remove flowtables after failed rule additions, potentially causing resource leaks and blocking cleanup of network configurations in high-volume environments.
How an attack unfolds
An attacker with sufficient privileges to add nftables rules repeatedly triggers initialization errors in the flow offload expression to accumulate leaked references, rendering affected flowtables undeletable.
How to fix it
Update the Linux kernel to a version containing the fix that restores the use-count pairing inside nft_flow_offload_init by undoing the increment on nf_ct_netns_get failure.
How to confirm the fix worked
Confirm the kernel source contains the corrected nft_flow_offload_init that saves the nf_ct_netns_get result and calls nft_use_dec on error; test that failed rule additions no longer prevent subsequent flowtable deletion.
Typical attack path
- Gain ability to submit nftables expressions via netlink
- Construct a rule using nft_flow_offload that causes nf_ct_netns_get to fail after the use count increment
- Repeat failed rule additions to leak references
- Attempt flowtable deletion to observe persistent EBUSY errors
How to detect it
Review kernel logs and nftables netlink audit records for repeated failures during rule addition that reference flow offload initialization; look for persistent EBUSY errors on flowtable deletion attempts.
What your security team should do
- Prioritize kernel updates for systems using nftables flow offload expressions
- Monitor nftables rule addition logs for repeated failures involving flow offload
- Audit nftables configurations to minimize use of flow offload where possible until patched
The record
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.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|