Skip to content
Heist/ feed
Unrated

vsock/virtio: cap TX credit to local buffer size

Type: advisorySource: Official CVE List1 source record

In the Linux kernel, the following vulnerability has been resolved: vsock/virtio: cap TX credit to local buffer size The virtio transports derives its TX credit directly from peer_buf_alloc, which is set from the remote endpoint's SO_VM_SOCKETS_BUFFER_SIZE value. On the host side this means that the amount of data we are willing to queue for a connection is scaled by a guest-chosen buffer size, rather than the host's own vsock configuration. A malicious guest can advertise a large buffer and read slowly, causing the host to allocate a correspondingly large amount of sk_buff memory. The same thing would happen in the guest with a malicious host, since virtio transports share the same code base. Introduce a small helper, virtio_transport_tx_buf_size(), that returns min(peer_buf_alloc, buf_alloc), and use it wherever we consume peer_buf_alloc. This ensures the effective TX window is bounded by both the peer's advertised buffer and our own buf_alloc (already clamped to buffer_max_size via SO_VM_SOCKETS_BUFFER_MAX_SIZE), so a remote peer cannot force the other to queue more data than allowed by its own vsock settings. On an unpatched Ubuntu 22.04 host (~64 GiB RAM), running a PoC with 32 guest vsock connections advertising 2 GiB each and reading slowly drove Slab/SUnreclaim from ~0.5 GiB to ~57 GiB; the system only recovered after killing the QEMU process. That said, if QEMU memory is limited with cgroups, the maximum memory used will be limited. With this patch applied: Before: M

Announced Group revision 1
Original source ↗

CVE-2026-23086

Primary source · Revision 1

Imported from structured advisory data. Source references identify upstream records or fields; verify affected versions and your deployed configuration.

Security context

Source reference: cve:CVE-2026-23086

Linux

Source reference: /containers/cna/affected/0/product

Affected versions
Not stated in this record
Fixed versions
Not stated in this record
Prerequisites
Not stated in this record

Linux

Source reference: /containers/cna/affected/1/product

Affected versions
Not stated in this record
Fixed versions
Not stated in this record
Prerequisites
Not stated in this record

Structured affected-version data

Original package identities and version rules from this source.

[
  {
    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
    "vendor": "Linux",
    "product": "Linux",
    "versions": [
      {
        "status": "affected",
        "version": "06a8fc78367d070720af960dcecec917d3ae5f3b",
        "lessThan": "fef7110ae5617555c792a2bb4d27878d84583adf",
        "versionType": "git"
      },
      {
        "status": "affected",
        "version": "06a8fc78367d070720af960dcecec917d3ae5f3b",
        "lessThan": "d9d5f222558b42f6277eafaaa6080966faf37676",
        "versionType": "git"
      },
      {
        "status": "affected",
        "version": "06a8fc78367d070720af960dcecec917d3ae5f3b",
        "lessThan": "c0e42fb0e054c2b2ec4ee80f48ccd256ae0227ce",
        "versionType": "git"
      },
      {
        "status": "affected",
        "version": "06a8fc78367d070720af960dcecec917d3ae5f3b",
        "lessThan": "84ef86aa7120449828d1e0ce438c499014839711",
        "versionType": "git"
      },
      {
        "status": "affected",
        "version": "06a8fc78367d070720af960dcecec917d3ae5f3b",
        "lessThan": "8ee784fdf006cbe8739cfa093f54d326cbf54037",
        "versionType": "git"
      }
    ],
    "programFiles": [
      "net/vmw_vsock/virtio_transport_common.c"
    ],
    "defaultStatus": "unaffected"
  },
  {
    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
    "vendor": "Linux",
    "product": "Linux",
    "versions": [
      {
        "status": "affected",
        "version": "4.8"
      },
      {
        "status": "unaffected",
        "version": "0",
        "lessThan": "4.8",
        "versionType": "semver"
      },
      {
        "status": "unaffected",
        "version": "6.1.162",
        "versionType": "semver",
        "lessThanOrEqual": "6.1.*"
      },
      {
        "status": "unaffected",
        "version": "6.6.122",
        "versionType": "semver",
        "lessThanOrEqual": "6.6.*"
      },
      {
        "status": "unaffected",
        "version": "6.12.68",
        "versionType": "semver",
        "lessThanOrEqual": "6.12.*"
      },
      {
        "status": "unaffected",
        "version": "6.18.8",
        "versionType": "semver",
        "lessThanOrEqual": "6.18.*"
      },
      {
        "status": "unaffected",
        "version": "6.19",
        "versionType": "original_commit_for_fix",
        "lessThanOrEqual": "*"
      }
    ],
    "programFiles": [
      "net/vmw_vsock/virtio_transport_common.c"
    ],
    "defaultStatus": "affected"
  }
]
Related CVEs
CVE-2026-23086

Source reference: /cveMetadata/cveId

Publisher severity

No explicit severity was provided.

Event
#39746 · Revision 1
Added to Heist Feed
Publisher date
Read the original announcement