Linux: net: skbuff: don't leave stale bytes in skb_copy_and_csum_bits()
What fixes it
- 5f19b9cfff79508e8cb09be40d014cb0807f3854LinuxCVE List
- 5551399751e2c9f31e4f3428040985a07e79d9c2LinuxCVE List
- 39d1a6b601831237c6038b5e3ac8dbb883c1700aLinuxCVE List
A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.
Description
In the Linux kernel, the following vulnerability has been resolved:
net: skbuff: don't leave stale bytes in skb_copy_and_csum_bits()
When skb_copy_and_csum_bits() reaches unreadable frags it returns 0 after copying only the linear part, and the rest of the caller's buffer is left as it was. The callers copy into a buffer that is about to go out on the wire: an ICMP error quoting the offending packet, or a driver's TX bounce buffer in skb_copy_and_csum_dev(). Neither buffer is zeroed beforehand, so whatever was in memory there gets sent.
Zero the part of the buffer we didn't fill. The checksum usually won't match the data any more, so the receiver will usually drop the packet, but either way it no longer carries anything it shouldn't. Only zero for a positive @len, a negative one from a broken caller must not turn into a huge memset().
Text from CVE List
Affected versions 10
- Linuxaffected: 65249feb6b3df9e17bab5911ee56fa7b0971e231 before 5f19b9cfff79508e8cb09be40d014cb0807f3854CVE List
- Linuxaffected: 65249feb6b3df9e17bab5911ee56fa7b0971e231 before 5551399751e2c9f31e4f3428040985a07e79d9c2CVE List
- Linuxaffected: 65249feb6b3df9e17bab5911ee56fa7b0971e231 before 39d1a6b601831237c6038b5e3ac8dbb883c1700aCVE List
- Linuxaffected: 65249feb6b3df9e17bab5911ee56fa7b0971e231 before ab9414ed70bd783e902a85c350620dee269bcb2bCVE List
- Linuxaffected: 6.12CVE List
- Linuxunaffected: all versions before 6.12CVE List
- Linuxunaffected: 6.12.113 through 6.12.*CVE List
- Linuxunaffected: 6.18.57 through 6.18.*CVE List
- Linuxunaffected: 7.2.11 through 7.2.*CVE List
- Linuxunaffected: 7.3CVE List
References 4
- git.kernel.org/stable/c/5f19b9cfff79508e8cb09be40d014cb0807f3854Referencevia CVE List
- git.kernel.org/stable/c/5551399751e2c9f31e4f3428040985a07e79d9c2Referencevia CVE List
- git.kernel.org/stable/c/39d1a6b601831237c6038b5e3ac8dbb883c1700aReferencevia CVE List
- git.kernel.org/stable/c/ab9414ed70bd783e902a85c350620dee269bcb2bReferencevia CVE List