CVE-2024-50038 netfilter: xtables: avoid NFPROTO_UNSPEC where needed

Medium 5.5 Published Updated

A kernel bug allows local attackers to trigger a warning and potential denial of service by invoking netfilter modules via ebtables.

Exploited in the wild
Not known
Login needed
Any signed-in user
Attackable
Local or same network only
Victim action needed
Not needed
Fix
Available

What is CVE-2024-50038?

CVE-2024-50038 is a medium-severity vulnerability in Linux kernel, published on 21 Oct 2024. It can only be exploited from the same machine or local network, with no action from the victim.

Official description

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

netfilter: xtables: avoid NFPROTO_UNSPEC where needed

syzbot managed to call xt_cluster match via ebtables:

WARNING: CPU: 0 PID: 11 at net/netfilter/xt_cluster.c:72 xt_cluster_mt+0x196/0x780 [..] ebt_do_table+0x174b/0x2a40

Module registers to NFPROTO_UNSPEC, but it assumes ipv4/ipv6 packet processing. As this is only useful to restrict locally terminating TCP/UDP traffic, register this for ipv4 and ipv6 family only.

Pablo points out that this is a general issue, direct users of the set/getsockopt interface can call into targets/matches that were only intended for use with ip(6)tables.

Check all UNSPEC matches and targets for similar issues:

- matches and targets are fine except if they assume skb_network_header() is valid -- this is only true when called from inet layer: ip(6) stack pulls the ip/ipv6 header into linear data area. - targets that return XT_CONTINUE or other xtables verdicts must be restricted too, they are incompatbile with the ebtables traverser, e.g. EBT_CONTINUE is a completely different value than XT_CONTINUE.

Most matches/targets are changed to register for NFPROTO_IPV4/IPV6, as they are provided for use by ip(6)tables.

The MARK target is also used by arptables, so register for NFPROTO_ARP too.

While at it, bail out if connbytes fails to enable the corresponding conntrack family.

This change passes the selftests in iptables.git.

Which versions are affected by CVE-2024-50038?

It affects 1 product.

Products include Linux kernel.

How do I fix CVE-2024-50038?

Apply the vendor's patch.

Is CVE-2024-50038 being exploited?

There is no known exploitation of CVE-2024-50038 in the wild and no public exploit code.

All Linux kernel vulnerabilities

Sources

Also known as AZL-51423, AZL-51452, BELL-CVE-2024-50038, DEBIAN-CVE-2024-50038, GHSA-7428-67h9-qj3r, ROOT-OS-DEBIAN-11-CVE-2024-50038 and 1 more.

Is CVE-2024-50038 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free