CVE-2026-64046

Summary

In the Linux kernel, the following vulnerability has been resolved:

net: tls: prevent chain-after-chain in plain text SG

Sashiko points out that if end = 0 (start != 0) the current code will create a chain link to content type right after the wrap link:

This would create a chain where the wrap link points directly to another chain link. The scatterlist API sg_next iterator does not recursively resolve consecutive chain links.

meaning this is illegal input to crypto.

The wrapping link is unnecessary if end = 0. end is the entry after the last one used so end = 0 means there's nothing pushed after the wrap:

end start i v v v [ ]…[ ][ d ][ d ][ d ][ d ][rsv for wrap]

Skip the wrapping in this case.

TLS 1.3 can use the "wrapping slot" for it's chaining if end = 0. This avoids the chain-after-chain.

Move the wrap chaining before marking END and chaining off content type, that feels like more logical ordering to me, but should not matter from functional perspective.

Affected Software

VendorProductVersion RangeStatus
LinuxLinux9aaaa56845a06aeabdd597cbe19492dc01f281ec < 49a5faaa471ddcd37b6893970c9916eb836e7c31affected
LinuxLinux9aaaa56845a06aeabdd597cbe19492dc01f281ec < 91359966e247c0244c66d50bbb8e74aefa4321c3affected
LinuxLinux9aaaa56845a06aeabdd597cbe19492dc01f281ec < 410351158dfef2d67fea6603680b3a6013c6ed9daffected
LinuxLinux9aaaa56845a06aeabdd597cbe19492dc01f281ec < acdc12b71c9aa4be5dcd2c8062753c6d2033e235affected
LinuxLinux9aaaa56845a06aeabdd597cbe19492dc01f281ec < 929b1548e63ac72e104c07d8ee8cbbeeba2fa89aaffected
LinuxLinux9aaaa56845a06aeabdd597cbe19492dc01f281ec < af855f4c966afafef74faf8390c7b86568c0d46daffected
LinuxLinux9aaaa56845a06aeabdd597cbe19492dc01f281ec < b9c015ef1a7bf1e8dc67f21c6381f36deb2c3a36affected
LinuxLinux9aaaa56845a06aeabdd597cbe19492dc01f281ec < ff26a0e8377dec07e4a7230db7675bed1b9a6d03affected
LinuxLinuxd529d6c9f7e3aaeac13c4948f79799ccb825f29daffected
LinuxLinux5.4.14 < 5.5affected
LinuxLinux5.5affected
LinuxLinux0 < 5.5unaffected
LinuxLinux5.10.258 <= 5.10.*unaffected
LinuxLinux5.15.209 <= 5.15.*unaffected
LinuxLinux6.1.175 <= 6.1.*unaffected
LinuxLinux6.6.142 <= 6.6.*unaffected
LinuxLinux6.12.92 <= 6.12.*unaffected
LinuxLinux6.18.34 <= 6.18.*unaffected
LinuxLinux7.0.11 <= 7.0.*unaffected
LinuxLinux7.1 <= *unaffected

Weaknesses

References