Skip to content
Heist/ feed
Back to feed
Medium

JPEG decoder: a duplicate SOF0 after SOS publishes a pixelmap that misreports its own allocation size

Type: advisorySources: OSV

The GUIX JPEG software decoder enforces no ordering on JPEG markers. A file that places a second `SOF0` frame header after `SOS` re-runs the frame header parser after the output buffer has already been allocated and its geometry latched. The decoder returns `GX_SUCCESS` and publishes a `GX_PIXELMAP` whose reported dimensions and `data_size` exceed the allocation behind it. Any consumer that trusts the returned structure reads out of bounds, including GUIX's own display drivers, reached through the ordinary draw path. Reproduces in the shipped default configuration; `GX_SOFTWARE_DECODER_SUPPORT` is enabled by default.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-91059
Confirmed fixed CVEs
Not specified
Updated in this feed
4 Nov 2026, 19:35 UTC · Revision 1

Source evidence

JPEG decoder: a duplicate SOF0 after SOS publishes a pixelmap that misreports its own allocation size

core-osv · Original source

Published 20 Oct 2026, 14:54 UTC

The GUIX JPEG software decoder enforces no ordering on JPEG markers. A file that places a second `SOF0` frame header after `SOS` re-runs the frame header parser after the output buffer has already been allocated and its geometry latched. The decoder returns `GX_SUCCESS` and publishes a `GX_PIXELMAP` whose reported dimensions and `data_size` exceed the allocation behind it. Any consumer that trusts the returned structure reads out of bounds, including GUIX's own display drivers, reached through the ordinary draw path. Reproduces in the shipped default configuration; `GX_SOFTWARE_DECODER_SUPPORT` is enabled by default.

osv:CVE-2026-91059
Complete source record
{
  "id": "46642cd3027d37a2517804018332aa6e4f85be2a80fec54583db9543ba75568f",
  "url": "https://osv.dev/vulnerability/CVE-2026-91059",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "JPEG decoder: a duplicate SOF0 after SOS publishes a pixelmap that misreports its own allocation size",
    "summary": "The GUIX JPEG software decoder enforces no ordering on JPEG markers. A file that places a second `SOF0` frame header after `SOS` re-runs the frame header parser after the output buffer has already been allocated and its geometry latched. The decoder returns `GX_SUCCESS` and publishes a `GX_PIXELMAP` whose reported dimensions and `data_size` exceed the allocation behind it. Any consumer that trusts the returned structure reads out of bounds, including GUIX's own display drivers, reached through the ordinary draw path. Reproduces in the shipped default configuration; `GX_SOFTWARE_DECODER_SUPPORT` is enabled by default.",
    "evidence": "osv:CVE-2026-91059",
    "products": [],
    "severity": "medium",
    "structured": {
      "id": "CVE-2026-91059",
      "aliases": [
        "CVE-2026-91059",
        "GHSA-cxf2-pgvg-pcw3"
      ],
      "metrics": [
        {
          "type": "CVSS_V4",
          "score": "CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:H/VI:N/VA:L/SC:N/SI:N/SA:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/eclipse-threadx/guix",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "last_affected": "52c1bb406843eb556d26dc28c65b13434f64e0ef"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "last_affected": "6.5.1.202602a"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StandardRange"
                  }
                ]
              }
            }
          ],
          "versions": [
            "v6.4.1_rel",
            "v6.5.1.202602a_rel",
            "v6.5.1.202602_rel",
            "v6.4.5.202504_rel",
            "v6.4.3.202503_rel",
            "v6.4.2_rel",
            "v6.4.0_rel",
            "v6.3.0_rel",
            "v6.2.1_rel",
            "v6.2.0_rel",
            "v6.1.12_rel",
            "v6.1.11_rel",
            "v6.1.10_rel",
            "v6.1.9_rel",
            "v6.1.8_rel",
            "v6.1.7_rel",
            "v6.1.6_rel",
            "v6.1.5_rel",
            "v6.1.4_rel",
            "v6.1.3_rel",
            "v6.1_rel",
            "v6.0.2_rel",
            "v6.0.1_rel",
            "v6.0_rel"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-91059.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:38.533446955Z",
      "provider": "osv",
      "references": [
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/91xxx/CVE-2026-91059.json",
        "https://github.com/eclipse-threadx/guix/security/advisories/GHSA-cxf2-pgvg-pcw3",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-91059"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-125"
        ],
        "cna_assigner": "eclipse",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/91xxx/CVE-2026-91059.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-91059",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 506231,
  "published_at": "2026-10-20T14:54:37.119+00:00"
}