vsock/virtio: fix potential underflow in virtio_transport_get_credit()
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 6.1.162, 6.6.122, 6.12.68, 6.18.8
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
- Exploitation: none
- Automatable: no
- Technical impact: partial
Summary
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]
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: partial
- Record last updated
Affected versions
- Linux Linux
From 06a8fc78367d070720af960dcecec917d3ae5f3b · fixed in d96de882d6b99955604669d962ae14e94b66a551; From 06a8fc78367d070720af960dcecec917d3ae5f3b · fixed in 02f9af192b98d15883c70dd41ac76d1b0217c899; From 06a8fc78367d070720af960dcecec917d3ae5f3b · fixed in d05bc313788f0684b27f0f5b60c52a844669b542; From 06a8fc78367d070720af960dcecec917d3ae5f3b · fixed in ec0f1b3da8061be3173d1c39faaf9504f91942c3; From 06a8fc78367d070720af960dcecec917d3ae5f3b · fixed in 3ef3d52a1a9860d094395c7a3e593f3aa26ff012
- Linux Linux
4.8
- KernelLinux
From 4.8.0 · fixed in 6.1.162; From 6.2.0 · fixed in 6.6.122; From 6.7.0 · fixed in 6.12.68; From 6.13.0 · fixed in 6.18.8