In the Linux kernel, the following vulnerability has been resolved:
9p/net: fix improper handling of bogus negative read/write replies
In p9_client_write() and p9_client_read_once(), if the server incorrectly replies with success but a negative write/read count then we would consider written (negative) <= rsize (positive) because both variables were signed.
Make variables unsigned to avoid this problem.
The reproducer linked below now fails with the following error instead of a null pointer deref: 9pnet: bogus RWRITE count (4294967295 > 3)
| Software | From | Fixed in |
|---|---|---|
| linux / linux_kernel | - | 6.1.136 |
| linux / linux_kernel | 6.2 | 6.6.89 |
| linux / linux_kernel | 6.7 | 6.12.26 |
| linux / linux_kernel | 6.13 | 6.14.5 |
| debian / debian_linux | 11.0 | 11.0.x |