Description
In the Linux kernel, the following vulnerability has been resolved: net: hamradio: 6pack: fix uninit-value in sixpack_receive_buf sixpack_receive_buf() does not properly skip bytes with TTY error flags. The while loop iterates through the flags buffer but never advances the data pointer (cp), and passes the original count (including error bytes) to sixpack_decode(). This causes sixpack_decode() to process bytes that should have been skipped due to TTY errors. The TTY layer does not guarantee that cp[i] holds a meaningful value when fp[i] is set, so passing those positions to sixpack_decode() results in KMSAN reporting an uninit-value read. Fix this by processing bytes one at a time, advancing cp on each iteration, and only passing valid (non-error) bytes to sixpack_decode(). This matches the pattern used by slip_receive_buf() and mkiss_receive_buf() for the same purpose.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < 1d3abf0c3ddeefc6f6d913aa129acc06fce8240aaffected1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < d4cceb5184538613572fb79319453f281b1eeacbaffected1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < 2951656b0de00153f2687f3a093890bce72b6215affected1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < e9cf4018d74237d142cd66243c821d13593270f0affected1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < d9ce2a4b679122397d7f35bad7be46913ad1ca80affected1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < 987af7625ceb1ee59d70eb0abd7af11c75e45d79affected1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < 578f3aba427c938fecfa0d8c83d9acb213a9b24aaffected1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < bf9a38803b2626b01cc769aaf13485d8650f576faffected
Linux Linux
Default version status: affected
2.6.12affected0 to < 2.6.12unaffected5.10.258 to ≤ 5.10.*unaffected5.15.209 to ≤ 5.15.*unaffected6.1.175 to ≤ 6.1.*unaffected6.6.141 to ≤ 6.6.*unaffected6.12.91 to ≤ 6.12.*unaffected6.18.33 to ≤ 6.18.*unaffected7.0.10 to ≤ 7.0.*unaffected7.1 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/1d3abf0c3ddeefc6f6d913aa129acc06fce8240a ↗
- https://git.kernel.org/stable/c/d4cceb5184538613572fb79319453f281b1eeacb ↗
- https://git.kernel.org/stable/c/2951656b0de00153f2687f3a093890bce72b6215 ↗
- https://git.kernel.org/stable/c/e9cf4018d74237d142cd66243c821d13593270f0 ↗
- https://git.kernel.org/stable/c/d9ce2a4b679122397d7f35bad7be46913ad1ca80 ↗
- https://git.kernel.org/stable/c/987af7625ceb1ee59d70eb0abd7af11c75e45d79 ↗
- https://git.kernel.org/stable/c/578f3aba427c938fecfa0d8c83d9acb213a9b24a ↗
- https://git.kernel.org/stable/c/bf9a38803b2626b01cc769aaf13485d8650f576f ↗