Linux: net: stmmac: fix TSO header length truncation
What fixes it
- 15989abd74f16f44bf953d056b95f1d2fda9b0cdLinuxCVE 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: stmmac: fix TSO header length truncation
stmmac_tso_xmit() stores the protocol header length returned by stmmac_tso_header_size() in a u8. stmmac_tso_valid_packet() admits headers up to 1023 bytes, so a header longer than 255 bytes wraps modulo 256 (486 becomes 230, 256 becomes 0).
A TCP over IPv6 socket carrying a few hundred bytes of sticky destination/hop-by-hop options makes skb_tcp_all_headers() exceed 255 while staying below the 1023-byte limit, so such an skb reaches stmmac_tso_xmit().
Widen proto_hdr_len to unsigned int, which is sufficient since the value is bounded by the hardware limit, and adjust the debug print specifier accordingly.
Text from CVE List
Affected versions 6
- Linuxaffected: 9edfa7dab8112a012b349b7937f5444fdc21e8f9 before bcf6013c2b4d732c6e4bf4d0f6ae4a18d63d414bCVE List
- Linuxaffected: 9edfa7dab8112a012b349b7937f5444fdc21e8f9 before 15989abd74f16f44bf953d056b95f1d2fda9b0cdCVE List
- Linuxaffected: 4.13CVE List
- Linuxunaffected: all versions before 4.13CVE List
- Linuxunaffected: 7.2.8 through 7.2.*CVE List
- Linuxunaffected: 7.3CVE List