{"id":"CVE-2026-77652","state":"PUBLISHED","title":"Dia: dia: heap buffer overflow in wpg colormap parser via out-of-bounds palette index","description":"A heap-based buffer overflow vulnerability exists in the Dia diagram editor WPG file format importer.\n\nIn plug-ins/wpg/wpg-import.c, the WPG import renderer allocates a fixed palette with:\n\n    ren->pPal = g_new0(WPGColorRGB, 256);\n\nWhen handling a WPG_COLORMAP record, the parser reads a start index (i16) and number of colors (iNum16) from the file and reads palette data with:\n\n    bRet &= (iNum16 == (int)fread(&ren->pPal[i16], sizeof(WPGColorRGB), iNum16, f));\n\nThe only bounds-related check is `if (i16 >= 0 && i16 <= iSize)`, where iSize is the WPG record size—not the palette capacity. There is no validation that i16 is less than 256 or that i16 + iNum16 does not exceed 256.\n\nA malicious WPG file can supply i16=256 and iNum16=264. That causes fread() to write 792 bytes starting at &pPal[256], while the palette buffer is only 768 bytes (256 entries × 3 bytes). This overflows into adjacent heap metadata and can crash Dia (SIGABRT / malloc corruption errors) or, depending on heap layout and exploit primitives, potentially lead to arbitrary code execution.\n\nExploitation requires convincing a user to open a crafted WPG file via Dia's file dialog, command line, or file association. No special privileges are required to deliver the file to the victim.\n\nAffected component: WPG parser (plug-ins/wpg/wpg-import.c).\nAffected versions: all Dia versions containing this code path (reporter tested Dia 0.98+git20260221-1; issue present on upstream master as of 2026-08-21).","publishedAt":"2026-08-26T19:21:39.936Z","updatedAt":"2026-08-27T14:43:23.737Z","severity":{"score":7.8,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H","source":"fedora"},"assigner":"fedora","products":["GNOME Dia"],"affected":[{"vendor":"GNOME","product":"Dia","packageName":"dia","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThanOrEqual":"0.98+git20260221-1","versionType":"semver"}],"collectionURL":"https://gitlab.gnome.org/GNOME/dia/-/issues/580"}],"references":["https://access.redhat.com/security/cve/CVE-2026-77652","https://bugzilla.redhat.com/show_bug.cgi?id=2520884","https://gitlab.gnome.org/GNOME/dia/-/blob/master/plug-ins/wpg/wpg-import.c","https://gitlab.gnome.org/GNOME/dia/-/issues/580"],"weaknesses":["CWE-122"],"ingestedAt":"2026-10-29T20:13:07.220Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/77xxx/CVE-2026-77652.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-77652","state":"PUBLISHED","datePublished":"2026-08-26T19:21:39.936Z","dateUpdated":"2026-08-27T14:43:23.737Z","assignerShortName":"fedora","assignerOrgId":"92fb86c3-55a5-4fb5-9c3f-4757b9e96dc5","dateReserved":"2026-08-21T04:00:13.905Z"},"containers":{"cna":{"title":"Dia: dia: heap buffer overflow in wpg colormap parser via out-of-bounds palette index","descriptions":[{"lang":"en","value":"A heap-based buffer overflow vulnerability exists in the Dia diagram editor WPG file format importer.\n\nIn plug-ins/wpg/wpg-import.c, the WPG import renderer allocates a fixed palette with:\n\n    ren->pPal = g_new0(WPGColorRGB, 256);\n\nWhen handling a WPG_COLORMAP record, the parser reads a start index (i16) and number of colors (iNum16) from the file and reads palette data with:\n\n    bRet &= (iNum16 == (int)fread(&ren->pPal[i16], sizeof(WPGColorRGB), iNum16, f));\n\nThe only bounds-related check is `if (i16 >= 0 && i16 <= iSize)`, where iSize is the WPG record size—not the palette capacity. There is no validation that i16 is less than 256 or that i16 + iNum16 does not exceed 256.\n\nA malicious WPG file can supply i16=256 and iNum16=264. That causes fread() to write 792 bytes starting at &pPal[256], while the palette buffer is only 768 bytes (256 entries × 3 bytes). This overflows into adjacent heap metadata and can crash Dia (SIGABRT / malloc corruption errors) or, depending on heap layout and exploit primitives, potentially lead to arbitrary code execution.\n\nExploitation requires convincing a user to open a crafted WPG file via Dia's file dialog, command line, or file association. No special privileges are required to deliver the file to the victim.\n\nAffected component: WPG parser (plug-ins/wpg/wpg-import.c).\nAffected versions: all Dia versions containing this code path (reporter tested Dia 0.98+git20260221-1; issue present on upstream master as of 2026-08-21)."}],"affected":[{"vendor":"GNOME","product":"Dia","packageName":"dia","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThanOrEqual":"0.98+git20260221-1","versionType":"semver"}],"collectionURL":"https://gitlab.gnome.org/GNOME/dia/-/issues/580"}],"references":[{"url":"https://access.redhat.com/security/cve/CVE-2026-77652","tags":["vdb-entry","x_refsource_REDHAT"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2520884","name":"RHBZ#2520884","tags":["issue-tracking","x_refsource_REDHAT"]},{"url":"https://gitlab.gnome.org/GNOME/dia/-/blob/master/plug-ins/wpg/wpg-import.c"},{"url":"https://gitlab.gnome.org/GNOME/dia/-/issues/580"}],"metrics":[{"other":{"content":{"value":"Important","namespace":"https://access.redhat.com/security/updates/classification/"},"type":"Red Hat severity rating"}},{"cvssV3_1":{"attackComplexity":"LOW","attackVector":"LOCAL","availabilityImpact":"HIGH","baseScore":7.8,"baseSeverity":"HIGH","confidentialityImpact":"HIGH","integrityImpact":"HIGH","privilegesRequired":"NONE","scope":"UNCHANGED","userInteraction":"REQUIRED","vectorString":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H","version":"3.1"},"format":"CVSS"}],"problemTypes":[{"descriptions":[{"cweId":"CWE-122","description":"Heap-based Buffer Overflow","lang":"en","type":"CWE"}]}],"providerMetadata":{"shortName":"fedora","orgId":"92fb86c3-55a5-4fb5-9c3f-4757b9e96dc5","dateUpdated":"2026-08-26T19:21:39.936Z"},"datePublic":"2026-08-21T00:00:00.000Z","x_redhatCweChain":"CWE-122: Heap-based Buffer Overflow","timeline":[{"lang":"en","time":"2026-08-21T03:45:55.032Z","value":"Reported to Red Hat."},{"lang":"en","time":"2026-08-21T00:00:00.000Z","value":"Made public."}],"credits":[{"lang":"en","value":"Red Hat would like to thank Robin \"drzobin\" Larsson for reporting this issue."}],"x_generator":{"engine":"cvelib 1.8.0"}},"adp":[{"title":"CISA ADP Vulnrichment","references":[{"url":"https://gitlab.gnome.org/GNOME/dia/-/issues/580","tags":["exploit"]}],"metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2026-08-27T14:42:56.357247Z","id":"CVE-2026-77652","options":[{"Exploitation":"poc"},{"Automatable":"no"},{"Technical Impact":"total"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-08-27T14:43:23.737Z"}}]}}}