« Volver al listado

CVE-2026-89879

Estado: RecibidaSin puntuar—

In the Linux kernel, the following vulnerability has been resolved:

media: s2255: bound JPEG frame size before copying into the buffer

s2255_fillbuff() memcpy()s vc->jpg_size bytes of a captured JPEG/MJPEG frame into the vb2 plane. vc->jpg_size is taken verbatim from the S2255_MARKER_FRAME header the device sends (pdword[4] in save_frame()) and, unlike the frame payload length just above it, is never bounded:

A malicious or malfunctioning device can therefore report a jpg_size larger than the destination vb2 plane, and the memcpy() writes past it. jpg_size is a signed int, so a value with the top bit set also turns into a huge length.

Leer descripción completaMostrar menos

Reject a frame whose jpg_size is negative or exceeds the plane size before copying it.

Detalles técnicos trazas, registros y código del informe original
	payload = le32_to_cpu(pdword[3]);
	if (payload > vc->req_image_size)	/* payload is checked ... */
		return -EINVAL;
	vc->pkt_size = payload;
	vc->jpg_size = le32_to_cpu(pdword[4]);	/* ... jpg_size is not */

CVSS

NVD no ha asignado puntuación CVSS a esta CVE (habitual desde el cambio de política de abril de 2026).

Probabilidad de explotación (EPSS)

EPSS (Exploit Prediction Scoring System, de FIRST) estima la probabilidad de que una vulnerabilidad sea explotada en 30 días. Complementa a CVSS (impacto) y a CISA KEV (explotación confirmada).

Tecnologías afectadas (1)

⚠ Inferidas por IA a partir de la descripción — NVD aún no ha analizado esta CVE; no son CPE verificados.

Referencias

JSON original (NVD)

Mostrar
{
  "id": "CVE-2026-89879",
  "cveTags": [],
  "metrics": {},
  "affected": [
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "affectedData": [
        {
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "product": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "38f993ad8b1fe4caf9e989caf6e2a25aff3bbaf7",
              "lessThan": "32a595dd3e8634544e5cfbc47f906dff3d3c1ef8",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "38f993ad8b1fe4caf9e989caf6e2a25aff3bbaf7",
              "lessThan": "4b6f7bccc6559ae5c54573c284fe76eafc9989b2",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "38f993ad8b1fe4caf9e989caf6e2a25aff3bbaf7",
              "lessThan": "2542516a147bfad740e7e411c251b639fad260ff",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "38f993ad8b1fe4caf9e989caf6e2a25aff3bbaf7",
              "lessThan": "79f58f900dd221ab04ea74bf4eaf79fa3b0fcc77",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "38f993ad8b1fe4caf9e989caf6e2a25aff3bbaf7",
              "lessThan": "d2ecaaab6a4f165abb54cdf61be60030b5782bf8",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "38f993ad8b1fe4caf9e989caf6e2a25aff3bbaf7",
              "lessThan": "68d664f1b4efe525e99154b7058fcb0378bdaff7",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "38f993ad8b1fe4caf9e989caf6e2a25aff3bbaf7",
              "lessThan": "dd739517560c8d0ec4463a53e717bf40b988d7da",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "38f993ad8b1fe4caf9e989caf6e2a25aff3bbaf7",
              "lessThan": "e504cc888f42999dd76b6a43788c422610f2aad2",
              "versionType": "git"
            }
          ],
          "programFiles": [
            "drivers/media/usb/s2255/s2255drv.c"
          ],
          "defaultStatus": "unaffected"
        },
        {
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "product": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "2.6.27"
            },
            {
              "status": "unaffected",
              "version": "0",
              "lessThan": "2.6.27",
              "versionType": "semver"
            },
            {
              "status": "unaffected",
              "version": "5.10.270",
              "versionType": "semver",
              "lessThanOrEqual": "5.10.*"
            },
            {
              "status": "unaffected",
              "version": "5.15.221",
              "versionType": "semver",
              "lessThanOrEqual": "5.15.*"
            },
            {
              "status": "unaffected",
              "version": "6.1.188",
              "versionType": "semver",
              "lessThanOrEqual": "6.1.*"
            },
            {
              "status": "unaffected",
              "version": "6.6.157",
              "versionType": "semver",
              "lessThanOrEqual": "6.6.*"
            },
            {
              "status": "unaffected",
              "version": "6.12.110",
              "versionType": "semver",
              "lessThanOrEqual": "6.12.*"
            },
            {
              "status": "unaffected",
              "version": "6.18.51",
              "versionType": "semver",
              "lessThanOrEqual": "6.18.*"
            },
            {
              "status": "unaffected",
              "version": "7.2.5",
              "versionType": "semver",
              "lessThanOrEqual": "7.2.*"
            },
            {
              "status": "unaffected",
              "version": "7.3-rc1",
              "versionType": "original_commit_for_fix",
              "lessThanOrEqual": "*"
            }
          ],
          "programFiles": [
            "drivers/media/usb/s2255/s2255drv.c"
          ],
          "defaultStatus": "affected"
        }
      ]
    }
  ],
  "published": "2026-09-16T11:16:56.230",
  "references": [
    {
      "url": "https://git.kernel.org/stable/c/2542516a147bfad740e7e411c251b639fad260ff",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/32a595dd3e8634544e5cfbc47f906dff3d3c1ef8",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/4b6f7bccc6559ae5c54573c284fe76eafc9989b2",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/68d664f1b4efe525e99154b7058fcb0378bdaff7",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/79f58f900dd221ab04ea74bf4eaf79fa3b0fcc77",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/d2ecaaab6a4f165abb54cdf61be60030b5782bf8",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/dd739517560c8d0ec4463a53e717bf40b988d7da",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/e504cc888f42999dd76b6a43788c422610f2aad2",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ],
  "vulnStatus": "Received",
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nmedia: s2255: bound JPEG frame size before copying into the buffer\n\ns2255_fillbuff() memcpy()s vc->jpg_size bytes of a captured JPEG/MJPEG\nframe into the vb2 plane.  vc->jpg_size is taken verbatim from the\nS2255_MARKER_FRAME header the device sends (pdword[4] in save_frame())\nand, unlike the frame payload length just above it, is never bounded:\n\n\tpayload = le32_to_cpu(pdword[3]);\n\tif (payload > vc->req_image_size)\t/* payload is checked ... */\n\t\treturn -EINVAL;\n\tvc->pkt_size = payload;\n\tvc->jpg_size = le32_to_cpu(pdword[4]);\t/* ... jpg_size is not */\n\nA malicious or malfunctioning device can therefore report a jpg_size\nlarger than the destination vb2 plane, and the memcpy() writes past it.\njpg_size is a signed int, so a value with the top bit set also turns\ninto a huge length.\n\nReject a frame whose jpg_size is negative or exceeds the plane size\nbefore copying it."
    }
  ],
  "lastModified": "2026-09-16T11:16:56.230",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}