---
id: CVE-2026-91189
title: >-
  GUIX binary resource loader: unvalidated glyph range causes an integer
  underflow and a heap out-of-bounds write when loading an untrusted font or
  theme
summary: >-
  The GUIX binary resource loader never checks that a font page's glyph range is
  well formed. `gx_page_header_first_glyph` and `gx_page_header_last_glyph` are
  read verbatim from the file and only the upper bound of `last_glyph` is
  validate…
severity: high
cvss: 7.1
cvssVector: 'CVSS:4.0/AV:L/AC:H/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N'
cvssSource: cna
cwe:
  - CWE-190
  - CWE-680
  - CWE-787
vendor: Eclipse Foundation
product: GUIX
affected:
  - GUIX <= 6.5.1.202602a
ssvc:
  exploitation: none
  automatable: 'no'
  technicalImpact: total
  timestamp: '2026-10-20T15:24:56.279111Z'
published: '2026-10-20'
updated: '2026-10-20'
sourceUpdated: '2026-10-20T15:25:24.066Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-91189'
references:
  - url: >-
      https://github.com/eclipse-threadx/guix/security/advisories/GHSA-hgcj-22cg-4hfv
tags:
  - cve.org
ingestedAt: '2026-10-20T15:09:24.113Z'
---

## Overview

The GUIX binary resource loader never checks that a font page's glyph range is well formed. `gx_page_header_first_glyph` and `gx_page_header_last_glyph` are read verbatim from the file and only the upper bound of `last_glyph` is validated, so a page declaring `first_glyph > last_glyph` makes `last - first + 1` underflow to a very large unsigned count.



That count is multiplied by a glyph record size to reserve the load buffer, and the multiply is unchecked, so it wraps to a small value and the loader allocates a buffer far smaller than the data it is about to write. The load pass then recomputes the count in a narrower type and writes attacker-controlled glyph records into the undersized buffer.

## Affected

- `GUIX <= 6.5.1.202602a`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
