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
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.