CVE-2022-49911: netfilter: ipset: enforce documented limit to prevent allocating huge memory
In the Linux kernel, the following vulnerability has been resolved:
netfilter: ipset: enforce documented limit to prevent allocating huge memory
Daniel Xu reported that the hash:net,iface type of the ipset subsystem does not limit adding the same network with different interfaces to a set, which can lead to huge memory usage or allocation failure.
The quick reproducer is
$ ipset create ACL.IN.ALLPERMIT hash:net,iface hashsize 1048576 timeout 0 $ for i in $(seq 0 100); do /sbin/ipset add ACL.IN.ALLPERMIT 0.0.0.0/0,kaf$i timeout 0 -exist; done
The backtrace when vmalloc fails:
[Tue Oct 25 00:13:08 2022] ipset: vmalloc error: size 1073741848, exceeds total pages <...> [Tue Oct 25 00:13:08 2022] Call Trace: [Tue Oct 25 00:13:08 2022] <TASK> [Tue Oct 25 00:13:08 2022] dumpstacklvl+0x48/0x60 [Tue Oct 25 00:13:08 2022] warnalloc+0x155/0x180 [Tue Oct 25 00:13:08 2022] vmallocnoderange+0x72a/0x760 [Tue Oct 25 00:13:08 2022] ? hashnetiface4add+0x7c0/0xb20 [Tue Oct 25 00:13:08 2022] ? kmalloclargenode+0x4a/0x90 [Tue Oct 25 00:13:08 2022] kvmallocnode+0xa6/0xd0 [Tue Oct 25 00:13:08 2022] ? hashnetiface4resize+0x99/0x710 <...>
The fix is to enforce the limit documented in the ipset(8) manpage:
The internal restriction of the hash:net,iface set type is that the same network prefix cannot be stored with more than 64 different interfaces in a single set.
Affected Software
Remediation
Event History
Frequently Asked Questions
What is the severity of CVE-2022-49911?
CVE-2022-49911 is rated as a medium severity vulnerability in the Linux kernel.
How do I fix CVE-2022-49911?
The fix for CVE-2022-49911 is included in the patched versions of the Linux kernel, and users should update to the latest stable release.
What systems are affected by CVE-2022-49911?
CVE-2022-49911 affects the Linux kernel, particularly the ipset subsystem which handles firewall services.
Can CVE-2022-49911 lead to denial of service?
Yes, CVE-2022-49911 can potentially allow an attacker to exhaust system memory, leading to denial of service.
Who reported CVE-2022-49911?
CVE-2022-49911 was reported by Daniel Xu.