{
  "schema_version": "1.6.1",
  "id": "RPI-CVE-2026-68255",
  "modified": "2026-10-09T11:39:44Z",
  "upstream": [
    "CVE-2026-68255"
  ],
  "published": "2026-08-10T12:08:00Z",
  "summary": "drm/virtio: bound EDID block reads to the response buffer",
  "details": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/virtio: bound EDID block reads to the response buffer\n\nvirtio_get_edid_block() validates the read offset only against the\ndevice-supplied resp->size field, never against the fixed-size resp->edid\narray. The EDID block index is driven by the device-supplied extension\ncount, so a malicious virtio-gpu backend can advertise a large size\ntogether with a high block count and read far past the array into adjacent\nkernel memory, which is then surfaced in the parsed EDID (an out-of-bounds\nread / info leak).\n\nAlso reject any read whose end exceeds the size of the edid array.\nConforming EDID responses stay within the array and are unaffected.",
  "severity": [
    {
      "type": "CVSS_V3",
      "score": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H"
    }
  ],
  "affected": [
    {
      "package": {
        "ecosystem": "Raspberry Pi OS:12",
        "name": "linux"
      },
      "versions": [
        "1:6.1.47-1+rpt4"
      ],
      "ecosystem_specific": {
        "binaries": [
          {
            "binary_name": "linux-image-6.1.0-rpi3-rpi-2712",
            "binary_version": "1:6.1.47-1+rpt4"
          },
          {
            "binary_name": "linux-image-6.1.0-rpi3-rpi-v6",
            "binary_version": "1:6.1.47-1+rpt4"
          },
          {
            "binary_name": "linux-image-6.1.0-rpi3-rpi-v7",
            "binary_version": "1:6.1.47-1+rpt4"
          },
          {
            "binary_name": "linux-image-6.1.0-rpi3-rpi-v7l",
            "binary_version": "1:6.1.47-1+rpt4"
          },
          {
            "binary_name": "linux-image-6.1.0-rpi3-rpi-v8",
            "binary_version": "1:6.1.47-1+rpt4"
          }
        ]
      },
      "database_specific": {
        "per_version": {
          "1:6.1.47-1+rpt4": {
            "linux_commit": "655fc658a15ae7a6f37103754adb39ba52a9a14e",
            "upstream_version": "6.1.47",
            "assessment": "commit ancestry (strak rule)",
            "upstream_fixed": "6.1.183",
            "compiled_filter": false
          }
        }
      }
    }
  ],
  "references": [
    {
      "type": "ADVISORY",
      "url": "https://www.cve.org/CVERecord?id=CVE-2026-68255"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/65ce911f341ad8ff0c08922eff5bb6db75666eb0"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/64bedd2758eccbc74d39f7006a7ec16fa39dc901"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/3f506a85a905b080cadc029a1651a310479090a6"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/9fc2a017c5d597937e0c28b9a9669844aa796c42"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/2757e6e803092cf0aeaf4b735e16b5d3bdc705c5"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/35be0e2c6862abcd5e5f5445261f1fd910d4a9b4"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/375c1934ef0196d3b6d3a1eae3232bef8dae7bf7"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/4e1a53892ba7f8a3e1da6bfc53c83ae7c812dccd"
    }
  ],
  "database_specific": {
    "source": "https://git.kernel.org/pub/scm/linux/security/vulns.git",
    "upstream_modified": "2026-08-23T12:46:35Z",
    "severity": {
      "source": "kernel CNA",
      "cvss_v3_score": 7.7,
      "cvss_v3_severity": "High",
      "scenario": "AV:L - The attacker is a malicious or compromised virtio-gpu backend (host/hypervisor device emulation or a vhost-user device process) supplying crafted EDID responses over the virtqueue; this is device-to-guest-kernel access, not remote network access.\nAC:L - The device fully controls resp->size, the EDID extension count and the timing of the read by raising VIRTIO_GPU_EVENT_DISPLAY config-change interrupts, so it can trigger the out-of-bounds read reliably and repeatedly with no conditions outside its control.\nPR:N - No guest credentials are needed at all: the vulnerable path runs in the virtio-gpu probe and the config-changed workqueue in kernel context, driven purely by device responses.\nUI:N - EDID re-reads are initiated automatically at probe and on device-raised display events; no guest user has to open, mount or interact with anything.\nS:U - The out-of-bounds read and the resulting disclosure both occur within the guest kernel's own security authority; no IOMMU, VM or sandbox boundary is crossed by the impact itself.\nC:H - Block indices up to 255 give start offsets of ~32 KB past the 1024-byte resp->edid array, reading far beyond the kmalloc'd response object into adjacent kernel heap memory, which is then surfaced as parsed EDID via the connector blob property and world-readable sysfs edid file, and hex-dumped for bad blocks.\nI:N - Destination buffers in _drm_do_get_edid() are allocated from the block count, so the flaw is strictly an over-read of the response buffer with no out-of-bounds write or kernel data modification.\nA:H - The memcpy can walk tens of kilobytes past the slab object into unmapped or guarded memory, causing an oops/panic (and an immediate BUG under KASAN/hardened builds), and the device can repeat it at will."
    }
  }
}
