netfilter: xtables: avoid NFPROTO_UNSPEC where needed
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.
- Products
- Kernel
- Affected versions
- Not specified
- Fixed versions
- 5.15.168, 6.1.113, 6.11.4, 6.6.57
- CVEs
- CVE-2024-50038
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 5 Nov 2026, 10:41 UTC · Revision 1
Source evidence
netfilter: xtables: avoid NFPROTO_UNSPEC where needed
core-osv · Original sourcePublished 21 Oct 2024, 19:39 UTC
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.
osv:CVE-2024-50038
Kernel
Fixed versions: 5.15.168, 6.1.113, 6.6.57, 6.11.4
Complete source record
{
"id": "32d41db5558ec2214dfcac153255bf37dc94741690c1f50c37a64afe1d617229",
"url": "https://osv.dev/vulnerability/CVE-2024-50038",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "netfilter: xtables: avoid NFPROTO_UNSPEC where needed",
"summary": "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.",
"evidence": "osv:CVE-2024-50038",
"products": [
{
"name": {
"value": "Kernel",
"evidence": "/affected/1/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "5.15.168",
"evidence": "/affected/1/ranges"
},
{
"value": "6.1.113",
"evidence": "/affected/1/ranges"
},
{
"value": "6.6.57",
"evidence": "/affected/1/ranges"
},
{
"value": "6.11.4",
"evidence": "/affected/1/ranges"
}
],
"affected_versions": []
}
],
"severity": "unknown",
"structured": {
"id": "CVE-2024-50038",
"aliases": [
"CVE-2024-50038"
],
"affected": [
{
"ranges": [
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "0269ea4937343536ec7e85649932bc8c9686ea78"
},
{
"fixed": "85ff9a0f793ca52c527e75cd40a69c948627ebde"
},
{
"fixed": "8f482bb7e27b37f1f734bb9a8eeb28b23d59d189"
},
{
"fixed": "997f67d813ce0cf5eb3cdb8f124da68141e91b6c"
},
{
"fixed": "4cdc55ec6222bb195995cc58f7cb46e4d8907056"
},
{
"fixed": "0bfcb7b71e735560077a42847f69597ec7dcc326"
}
]
}
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2024-50038.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "2.6.30"
},
{
"fixed": "5.15.168"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "5.16.0"
},
{
"fixed": "6.1.113"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "6.2.0"
},
{
"fixed": "6.6.57"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "6.7.0"
},
{
"fixed": "6.11.4"
}
]
}
],
"package": {
"name": "Kernel",
"ecosystem": "Linux"
},
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2024-50038.json"
}
}
],
"modified": "2026-10-28T02:30:43.932609628Z",
"provider": "osv",
"references": [
"https://git.kernel.org/stable/c/0bfcb7b71e735560077a42847f69597ec7dcc326",
"https://git.kernel.org/stable/c/4cdc55ec6222bb195995cc58f7cb46e4d8907056",
"https://git.kernel.org/stable/c/85ff9a0f793ca52c527e75cd40a69c948627ebde",
"https://git.kernel.org/stable/c/8f482bb7e27b37f1f734bb9a8eeb28b23d59d189",
"https://git.kernel.org/stable/c/997f67d813ce0cf5eb3cdb8f124da68141e91b6c",
"https://lists.debian.org/debian-lts-announce/2025/01/msg00001.html",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2024/50xxx/CVE-2024-50038.json",
"https://nvd.nist.gov/vuln/detail/CVE-2024-50038",
"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"
],
"provider_metadata": {
"cna_assigner": "Linux",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2024/50xxx/CVE-2024-50038.json"
}
},
"related_cves": [
{
"value": "CVE-2024-50038",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": null
},
"source_id": "core-osv",
"document_id": 511660,
"published_at": "2024-10-21T19:39:38.451+00:00"
}