In the Linux kernel, the following vulnerability has been resolved:
vsock: Update rxbytes on readskb()
Make sure virtiotransportincrxpkt() and virtiotransportdecrxpkt() calls are balanced (i.e. virtiovsocksock::rxbytes doesn't lie) after vsocktransport::read_skb().
While here, also inform the peer that we've freed up space and it has more credit.
Failing to update rxbytes after packet is dequeued leads to a warning on SOCKSTREAM recv():
[ 233.396654] rxqueue is empty, but rxbytes is non-zero [ 233.396702] WARNING: CPU: 11 PID: 40601 at net/vmwvsock/virtiotransport_common.c:589
[
{
"id": "CVE-2024-50169-1dab9887",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Function",
"target": {
"file": "net/vmw_vsock/virtio_transport_common.c",
"function": "virtio_transport_read_skb"
},
"digest": {
"function_hash": "98709288425379966519791874406429962978",
"length": 359.0
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e5ca2b98090b4bb1c393088c724af6c37812a829"
},
{
"id": "CVE-2024-50169-2bce2c89",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Line",
"target": {
"file": "net/vmw_vsock/virtio_transport_common.c"
},
"digest": {
"line_hashes": [
"17111823117103106599556439912978253853",
"182714638452018909864508228903092923507",
"334787454263211125594842859055287989567",
"295846157761978742174139443680682343960",
"272551710766901816400539100815749014577",
"24644557810011264240558118944676166990",
"266140634898495359981799870435126705527",
"98673179908521592942248051420211461898",
"202469562281555526430178502893129445135",
"186010804158284879869700032442818955026",
"277358122460163670350765831124831385697"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@66cd51de31c682a311c2fa25c580b7ea45859dd9"
},
{
"id": "CVE-2024-50169-324b1bd4",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Function",
"target": {
"file": "net/vmw_vsock/virtio_transport_common.c",
"function": "virtio_transport_read_skb"
},
"digest": {
"function_hash": "98709288425379966519791874406429962978",
"length": 359.0
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3543152f2d330141d9394d28855cb90b860091d2"
},
{
"id": "CVE-2024-50169-36bc8074",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Function",
"target": {
"file": "net/vmw_vsock/virtio_transport_common.c",
"function": "virtio_transport_read_skb"
},
"digest": {
"function_hash": "98709288425379966519791874406429962978",
"length": 359.0
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@66cd51de31c682a311c2fa25c580b7ea45859dd9"
},
{
"id": "CVE-2024-50169-37f43cd4",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Line",
"target": {
"file": "net/vmw_vsock/virtio_transport_common.c"
},
"digest": {
"line_hashes": [
"17111823117103106599556439912978253853",
"182714638452018909864508228903092923507",
"334787454263211125594842859055287989567",
"295846157761978742174139443680682343960",
"272551710766901816400539100815749014577",
"24644557810011264240558118944676166990",
"266140634898495359981799870435126705527",
"98673179908521592942248051420211461898",
"202469562281555526430178502893129445135",
"186010804158284879869700032442818955026",
"277358122460163670350765831124831385697"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3543152f2d330141d9394d28855cb90b860091d2"
},
{
"id": "CVE-2024-50169-b6138a15",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Line",
"target": {
"file": "net/vmw_vsock/virtio_transport_common.c"
},
"digest": {
"line_hashes": [
"17111823117103106599556439912978253853",
"182714638452018909864508228903092923507",
"334787454263211125594842859055287989567",
"295846157761978742174139443680682343960",
"272551710766901816400539100815749014577",
"24644557810011264240558118944676166990",
"266140634898495359981799870435126705527",
"98673179908521592942248051420211461898",
"202469562281555526430178502893129445135",
"186010804158284879869700032442818955026",
"277358122460163670350765831124831385697"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e5ca2b98090b4bb1c393088c724af6c37812a829"
}
]