CVE-2024-50038: netfilter: xtables: avoid NFPROTO_UNSPEC where needed
In the Linux kernel, the following vulnerability has been resolved:
netfilter: xtables: avoid NFPROTOUNSPEC where needed
syzbot managed to call xtcluster match via ebtables:
WARNING: CPU: 0 PID: 11 at net/netfilter/xtcluster.c:72 xtclustermt+0x196/0x780 [..] ebtdotable+0x174b/0x2a40
Module registers to NFPROTOUNSPEC, 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 skbnetworkheader() 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 XTCONTINUE or other xtables verdicts must be restricted too, they are incompatbile with the ebtables traverser, e.g. EBTCONTINUE is a completely different value than XTCONTINUE.
Most matches/targets are changed to register for NFPROTOIPV4/IPV6, as they are provided for use by ip(6)tables.
The MARK target is also used by arptables, so register for NFPROTOARP too.
While at it, bail out if connbytes fails to enable the corresponding conntrack family.
This change passes the selftests in iptables.git.
Other sources
This CVE was automatically created from a reference found in an email or other text. If you are reading this, then this CVE entry is probably erroneous, since this text should be replaced by the official CVE description automatically.
— Launchpad
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
debian/linuxto a version that resolves this vulnerability.Fixed in 6.1.129-1Fixed in 6.1.135-1Fixed in 6.12.25-1Fixed in 6.12.27-1 - Upgrade
Upgrade
debian/linux-6.1to a version that resolves this vulnerability.Fixed in 6.1.129-1~deb11u1 - Configuration
Restrict matches and targets that assume IPv4/IPv6 packet processing to registration for NFPROTO_IPV4 and NFPROTO_IPV6 instead of NFPROTO_UNSPEC; register the MARK target for NFPROTO_ARP as well.
Linux kernel netfilter xtables matches and targets NFPROTO_UNSPEC registration = NFPROTO_IPV4 and NFPROTO_IPV6 only
Event History
Frequently Asked Questions
What is the severity of CVE-2024-50038?
CVE-2024-50038 has a high severity due to the potential for exploitation within the Linux kernel's networking component.
What systems are affected by CVE-2024-50038?
CVE-2024-50038 affects multiple versions of the Linux kernel ranging from 2.6.30 to 6.12-rc2.
How do I fix CVE-2024-50038?
To fix CVE-2024-50038, update your Linux kernel to a version that is not affected, such as those mentioned in the advisories.
Can CVE-2024-50038 be exploited remotely?
Yes, CVE-2024-50038 may allow remote attackers to exploit vulnerabilities in the networking stack of the kernel.
Is there a workaround for CVE-2024-50038?
Currently, there are no known workarounds for CVE-2024-50038 other than applying the appropriate kernel updates.