Medium · published February 4, 2026
In the Linux kernel, the following vulnerability has been resolved:
vsock/virtio: fix potential underflow in virtio_transport_get_credit()
The credit calculation in virtio_transport_get_credit() uses unsigned
arithmetic:
ret = vvs->peer_buf_alloc - (vvs->tx_cnt - vvs->peer_fwd_cnt);
If the peer shrinks its advertised buffer (peer_buf_alloc) while bytes
are in flight, the subtraction can underflow and produce a large
positive value, potentially allowing more data to be queued than the
peer can handle.
Reuse virtio_transport_has_space() which already handles this case and
add a comment to make it clear why we are doing that.
[Stefano: use virtio_transport_has_space() instead of duplicating the code]
[Stefano: tweak the commit message]
| Product | Versions | Fixed in |
|---|---|---|
| linux/linux_kernel | ≥ 4.8, < 6.1.162 | 6.1.162 |
| linux/linux_kernel | ≥ 6.2, < 6.6.122 | 6.6.122 |
| linux/linux_kernel | ≥ 6.7, < 6.12.68 | 6.12.68 |
| linux/linux_kernel | ≥ 6.13, < 6.18.8 | 6.18.8 |
| linux/linux_kernel | all versions | — |
| linux/linux_kernel | all versions | — |
| linux/linux_kernel | all versions | — |
| linux/linux_kernel | all versions | — |
| linux/linux_kernel | all versions | — |
| linux/linux_kernel | all versions | — |