virtio-net: Ensure that TCP packets don't overflow gso_segs
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 4.15, 4.20, 5.5, 5.7, 5.15.221, and 5 more
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
In the Linux kernel, the following vulnerability has been resolved: virtio-net: Ensure that TCP packets don't overflow gso_segs The user can specify any gso_size in a packet crafted with an AF_PACKET PACKET_VNET_HDR socket, even smaller than TCP_MIN_GSO_SIZE = 8. At the same time, GSO_MAX_SIZE = 8 * GSO_MAX_SEGS = 8 * 65535. When the user crafts a packet with gso_size < 8, there is a risk for partial GSO to overflow the 16-bit gso_segs field when dividing the SKB length by gso_size. Adjust gso_size of TCP packets to be at least TCP_MIN_GSO_SIZE = 8. Keep gso_size of UDP GSO packets, as gso_size=1 is valid and explicitly tested at tools/testing/selftests/net/tun.c:649.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 7c6d2ecbda83150b2036a2b36b21381ad4667762 · fixed in d3d111fe809773edbb4ae121e36253b7d683509a; From 7c6d2ecbda83150b2036a2b36b21381ad4667762 · fixed in 8f6667a081887c2b59c6f3dd86c1789ada563762; From 7c6d2ecbda83150b2036a2b36b21381ad4667762 · fixed in 339f47ae04dcc6b5a730dd6bc70dddc8937c3260; From 7c6d2ecbda83150b2036a2b36b21381ad4667762 · fixed in 29bd12c7c5f9d6cf855b87bace18f71e9607f9e8; From 7c6d2ecbda83150b2036a2b36b21381ad4667762 · fixed in 0e5ed3b98d1d8d251acfdccfeaa607453ad12954; From 7c6d2ecbda83150b2036a2b36b21381ad4667762 · fixed in 75c271c48f483af678e514734e10b2452410e08c; From 7c6d2ecbda83150b2036a2b36b21381ad4667762 · fixed in c27c449d455aafd9018a3cbab150f1c42c87923f; From 4.14.187 · fixed in 4.15; From 4.19.131 · fixed in 4.20; From 5.4.46 · fixed in 5.5; From 5.6.18 · fixed in 5.7
- Linux Linux
5.7
- KernelLinux
From 5.7.0 · fixed in 5.15.221; From 5.16.0 · fixed in 6.1.188; From 6.2.0 · fixed in 6.6.157; From 6.7.0 · fixed in 6.12.110; From 6.13.0 · fixed in 6.18.52; From 6.19.0 · fixed in 7.2.6
References 7
git.kernel.org
- stable/c/d3d111fe809773edbb4ae121e36253b7d683509a
- stable/c/8f6667a081887c2b59c6f3dd86c1789ada563762
- stable/c/339f47ae04dcc6b5a730dd6bc70dddc8937c3260
- stable/c/29bd12c7c5f9d6cf855b87bace18f71e9607f9e8
- stable/c/0e5ed3b98d1d8d251acfdccfeaa607453ad12954
- stable/c/75c271c48f483af678e514734e10b2452410e08c
- stable/c/c27c449d455aafd9018a3cbab150f1c42c87923f