net: slip: serialize receive against buffer reallocation
authorSungmin Kang <726ksm@gmail.com>
Sat, 18 Jul 2026 07:36:30 +0000 (16:36 +0900)
committerJakub Kicinski <kuba@kernel.org>
Thu, 23 Jul 2026 16:06:48 +0000 (09:06 -0700)
commitee7f9bb9320add61f7b367d7e6cd55e3a3a4d65d
treed586b6a6f169463a837280fdeefed542c38e9d3b
parent7fd55911fdb13d280133a10f41cc214df1021fc2
net: slip: serialize receive against buffer reallocation

sl_realloc_bufs() replaces rbuff and updates buffsize while holding
sl->lock. slip_receive_buf() reads those fields and writes through rbuff
without holding the lock.

An MTU change can therefore race with receive processing. An MTU shrink
can expose the new smaller rbuff with the old larger bound, causing an
out-of-bounds write. A receive callback which already loaded the old
rbuff can instead continue writing after that buffer has been freed.

Serialize receive processing with sl_realloc_bufs() by holding sl->lock
while consuming each receive batch.

Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
Cc: stable@vger.kernel.org
Signed-off-by: Sungmin Kang <726ksm@gmail.com>
Link: https://patch.msgid.link/20260718073631.1674-1-726ksm@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/slip/slip.c