CVE-2026-68204 (GCVE-0-2026-68204)
Vulnerability from cvelistv5
Published
2026-08-10 12:00
Modified
2026-08-19 16:31
Summary
In the Linux kernel, the following vulnerability has been resolved: media: vivid: check for vb2_is_busy() when toggling caps The vivid_update_format_cap/out() functions must only be called if the capture/output queue are not busy. But for the controls that select the CROP/COMPOSE/SCALE capability that is not checked. Only when streaming starts will they be set to 'grabbed' and it is impossible to change the control, but between REQBUFS and STREAMON you are still allowed to set these controls. Since vivid_update_format_cap/out will change the format, this can cause unexpected results. Besides adding these checks, also add a WARN_ON in vivid_update_format_cap/out() if the queue is busy. I'm 90% certain that this is the cause of this syzbot bug: https://syzkaller.appspot.com/bug?extid=dac8f5eaa46837e97b89 But since we never have reproducers, it is hard to be certain. In any case, these checks are needed regardless.
Impacted products
Vendor Product Version
Linux Linux Version: 73c3f48230cda01402ae189b05d56f1f7e0d53c9
Version: 73c3f48230cda01402ae189b05d56f1f7e0d53c9
Version: 73c3f48230cda01402ae189b05d56f1f7e0d53c9
Version: 73c3f48230cda01402ae189b05d56f1f7e0d53c9
Version: 73c3f48230cda01402ae189b05d56f1f7e0d53c9
Version: 73c3f48230cda01402ae189b05d56f1f7e0d53c9
Version: 73c3f48230cda01402ae189b05d56f1f7e0d53c9
Version: 73c3f48230cda01402ae189b05d56f1f7e0d53c9
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/media/test-drivers/vivid/vivid-ctrls.c",
            "drivers/media/test-drivers/vivid/vivid-vid-cap.c",
            "drivers/media/test-drivers/vivid/vivid-vid-out.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "0a820f03727b509b887f3216a574062948761f34",
              "status": "affected",
              "version": "73c3f48230cda01402ae189b05d56f1f7e0d53c9",
              "versionType": "git"
            },
            {
              "lessThan": "bbc96bc75de0fcd9bb6ac48798b206e3b09ec865",
              "status": "affected",
              "version": "73c3f48230cda01402ae189b05d56f1f7e0d53c9",
              "versionType": "git"
            },
            {
              "lessThan": "6a5bc8aea111ccbca71ef2b9c868d5c81f2e89de",
              "status": "affected",
              "version": "73c3f48230cda01402ae189b05d56f1f7e0d53c9",
              "versionType": "git"
            },
            {
              "lessThan": "a9cd0e8fb0b21faaa71199d9d3feb305c18ff576",
              "status": "affected",
              "version": "73c3f48230cda01402ae189b05d56f1f7e0d53c9",
              "versionType": "git"
            },
            {
              "lessThan": "abaec6747304581f8d4a9936352fa10e13325f07",
              "status": "affected",
              "version": "73c3f48230cda01402ae189b05d56f1f7e0d53c9",
              "versionType": "git"
            },
            {
              "lessThan": "492c97cb50feaa60ccd7792d3d6b904ed8ec61bf",
              "status": "affected",
              "version": "73c3f48230cda01402ae189b05d56f1f7e0d53c9",
              "versionType": "git"
            },
            {
              "lessThan": "daf2d92669b4a659d805d88d811161c70cd325ee",
              "status": "affected",
              "version": "73c3f48230cda01402ae189b05d56f1f7e0d53c9",
              "versionType": "git"
            },
            {
              "lessThan": "c2d1a2130c93f6d758af58590b86b2254c7a1dec",
              "status": "affected",
              "version": "73c3f48230cda01402ae189b05d56f1f7e0d53c9",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/media/test-drivers/vivid/vivid-ctrls.c",
            "drivers/media/test-drivers/vivid/vivid-vid-cap.c",
            "drivers/media/test-drivers/vivid/vivid-vid-out.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "3.18"
            },
            {
              "lessThan": "3.18",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.10.*",
              "status": "unaffected",
              "version": "5.10.265",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.216",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.183",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.148",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.101",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.42",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.1.*",
              "status": "unaffected",
              "version": "7.1.6",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.2",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.10.265",
                  "versionStartIncluding": "3.18",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.216",
                  "versionStartIncluding": "3.18",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.183",
                  "versionStartIncluding": "3.18",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.148",
                  "versionStartIncluding": "3.18",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.101",
                  "versionStartIncluding": "3.18",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.42",
                  "versionStartIncluding": "3.18",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.1.6",
                  "versionStartIncluding": "3.18",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2",
                  "versionStartIncluding": "3.18",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nmedia: vivid: check for vb2_is_busy() when toggling caps\n\nThe vivid_update_format_cap/out() functions must only be called if the\ncapture/output queue are not busy. But for the controls that select\nthe CROP/COMPOSE/SCALE capability that is not checked.\n\nOnly when streaming starts will they be set to \u0027grabbed\u0027 and it is\nimpossible to change the control, but between REQBUFS and STREAMON you\nare still allowed to set these controls. Since vivid_update_format_cap/out\nwill change the format, this can cause unexpected results.\n\nBesides adding these checks, also add a WARN_ON in\nvivid_update_format_cap/out() if the queue is busy.\n\nI\u0027m 90% certain that this is the cause of this syzbot bug:\n\nhttps://syzkaller.appspot.com/bug?extid=dac8f5eaa46837e97b89\n\nBut since we never have reproducers, it is hard to be certain. In any case,\nthese checks are needed regardless."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.8,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - The bug is reached purely through local ioctls (VIDIOC_REQBUFS/PREPARE_BUF/S_EXT_CTRLS/STREAMON) on the /dev/videoN character device exposed by the vivid driver. There is no remote or network component.\nAC:L - The attacker fully controls both the initial buffer allocation size and the later geometry change, so the undersized-buffer overflow is produced deterministically by a fixed ioctl sequence with no race or memory-layout precondition.\nPR:L - No capability check exists on the V4L2 control or buffer ioctls; any process able to open /dev/videoN can trigger it, which on desktops/Android and container images with video devices bind-mounted means an ordinary unprivileged user (video group / logind ACL).\nUI:N - The entire sequence is performed by the attacking process itself against a device node it opens; no victim action or cooperation is needed.\nS:U - The corruption stays within the kernel\u0027s own memory and security authority; no VM, IOMMU or sandbox boundary is crossed by the overflow itself.\nC:H - The stale-geometry mismatch also drives out-of-bounds reads on the output path and lets adjacent kernel allocations be read back through the mmap\u0027ed plane, and the resulting heap corruption can be shaped into a broader kernel-memory disclosure primitive.\nI:H - The capture kthread writes a full frame using the enlarged geometry into a plane allocated for the smaller format, giving an out-of-bounds kernel write of attacker-chosen length and largely attacker-influenced (test-pattern) content, which is exploitable for kernel memory corruption.\nA:H - Overwriting memory past the vb2 plane reliably corrupts neighbouring allocations or hits a vmalloc guard page, producing KASAN splats, oopses and kernel panics; the post-fix WARN_ON also panics on panic_on_warn systems."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-19T16:31:23.943Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/0a820f03727b509b887f3216a574062948761f34"
        },
        {
          "url": "https://git.kernel.org/stable/c/bbc96bc75de0fcd9bb6ac48798b206e3b09ec865"
        },
        {
          "url": "https://git.kernel.org/stable/c/6a5bc8aea111ccbca71ef2b9c868d5c81f2e89de"
        },
        {
          "url": "https://git.kernel.org/stable/c/a9cd0e8fb0b21faaa71199d9d3feb305c18ff576"
        },
        {
          "url": "https://git.kernel.org/stable/c/abaec6747304581f8d4a9936352fa10e13325f07"
        },
        {
          "url": "https://git.kernel.org/stable/c/492c97cb50feaa60ccd7792d3d6b904ed8ec61bf"
        },
        {
          "url": "https://git.kernel.org/stable/c/daf2d92669b4a659d805d88d811161c70cd325ee"
        },
        {
          "url": "https://git.kernel.org/stable/c/c2d1a2130c93f6d758af58590b86b2254c7a1dec"
        }
      ],
      "title": "media: vivid: check for vb2_is_busy() when toggling caps",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-68204",
    "datePublished": "2026-08-10T12:00:23.311Z",
    "dateReserved": "2026-07-30T09:28:09.374Z",
    "dateUpdated": "2026-08-19T16:31:23.943Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
  • Confirmed: The vulnerability is confirmed from an analyst perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
  • Patched: This vulnerability was successfully patched by the user reporting the sighting.
  • Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
  • Not confirmed: The user expresses doubt about the veracity of the vulnerability.
  • Not patched: This vulnerability was not successfully patched by the user reporting the sighting.


Loading…

Loading…