VYPR
Unrated severityNVD Advisory· Published Dec 30, 2025· Updated Apr 15, 2026

CVE-2023-54243

CVE-2023-54243

Description

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

netfilter: ebtables: fix table blob use-after-free

We are not allowed to return an error at this point. Looking at the code it looks like ret is always 0 at this point, but its not.

t = find_table_lock(net, repl->name, &ret, &ebt_mutex);

... this can return a valid table, with ret != 0.

This bug causes update of table->private with the new blob, but then frees the blob right away in the caller.

Syzbot report:

BUG: KASAN: vmalloc-out-of-bounds in __ebt_unregister_table+0xc00/0xcd0 net/bridge/netfilter/ebtables.c:1168 Read of size 4 at addr ffffc90005425000 by task kworker/u4:4/74 Workqueue: netns cleanup_net Call Trace: kasan_report+0xbf/0x1f0 mm/kasan/report.c:517 __ebt_unregister_table+0xc00/0xcd0 net/bridge/netfilter/ebtables.c:1168 ebt_unregister_table+0x35/0x40 net/bridge/netfilter/ebtables.c:1372 ops_exit_list+0xb0/0x170 net/core/net_namespace.c:169 cleanup_net+0x4ee/0xb10 net/core/net_namespace.c:613 ...

ip(6)tables appears to be ok (ret should be 0 at this point) but make this more obvious.

AI Insight

LLM-synthesized narrative grounded in this CVE's description and references.

In the Linux kernel's netfilter ebtables, a use-after-free occurs when find_table_lock() returns a valid table with a non-zero error code, causing the caller to free the newly allocated blob immediately after assigning it.

Root

Cause

The vulnerability resides in the ebtables subsystem of the Linux kernel's netfilter framework. In the relevant code path, the function find_table_lock() can return a valid table pointer while also setting the error variable ret to a non-zero value. The caller then proceeds to update table->private with a new blob, but because ret is non-zero, it subsequently frees that blob immediately, leading to a use-after-free condition [1]. The official description notes that the same path in ip(6)tables appears to be safe because ret should always be 0 there, but the ebtables path fails to enforce this invariant [1].

Exploitation

An attacker would need the ability to trigger a specific ebtables table update operation that invokes the flawed error-handling path. The attack does not require physical access but does require the ability to issue netfilter commands (e.g., via ebtables userspace utility or netlink sockets). A Syzkaller-generated report demonstrated the crash, showing that the bug is reachable during network namespace teardown, specifically in the __ebt_unregister_table() function [1].

Impact

A successful exploit could cause a kernel crash (denial of service) due to accessing freed memory. The KASAN report shows a vmalloc-out-of-bounds read of size 4 at the freed address, and the crash occurs in the workqueue context during namespace cleanup [1]. Under controlled conditions, an attacker might be able to leverage the use-after-free to achieve arbitrary code execution, though the description focuses on the memory safety issue and the resulting system instability.

Mitigation

The fix has been committed to the Linux kernel stable tree. Users should apply the patch referenced in the commit [1] (commit 3dd6ac973351) or update to a kernel version that includes the fix. As of the publication date, the vulnerability is not listed on CISA's Known Exploited Vulnerabilities (KEV) catalog, and no workarounds are documented beyond applying the kernel patch.

AI Insight generated on May 19, 2026. Synthesized from this CVE's description and the cited reference URLs; citations are validated against the source bundle.

Affected products

1

Patches

5

Vulnerability mechanics

Generated on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.

References

5

News mentions

0

No linked articles in our index yet.