Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft XPS with invalid Points arity
-
DeliveryDeliver document to victim
-
ExploitVictim opens file in Evince/consumer
-
ExecutionTrigger heap out-of-bounds read in path parser
-
ImpactCrash viewer or leak adjacent heap into output
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, read limits
MITRE ATT&CK
1 technique across 1 tactic: Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires a victim to open or render an attacker-crafted XPS document in a libgxps-based consumer (e.g., Evince), where the PolyBezierSegment or PolyQuadraticBezierSegment Points attribute specifies a point count not divisible by three (quadratic/bezier arity mismatch), driving path_geometry_start_element() to read past the heap allocation. Limiting factors: it is a local, file-based attack (AV:L) that depends on user interaction (UI:P) - the user must choose to open the malicious file - and there is no privilege or authentication bypass and no code execution; realistic impact is a crash and limited disclosure of adjacent heap contents rendered into output, which constrains it well below remote unauthenticated severity. |
| Impact | The provided CVSS 4.0 vector (AV:L/AC:L/AT:N/PR:N/UI:P/VC:L/VI:N/VA:H) scores 6.9 (medium) and the signals are internally consistent: this is a local, low-complexity, unauthenticated flaw that nonetheless requires passive user interaction (UI:P) - the victim must open or render a crafted XPS document. The dominant impact is availability (VA:H, a crash of consumers like Evince) with only limited confidentiality exposure (VC:L, adjacent heap bytes rendered into output); there is no integrity impact. No EPSS score was supplied, so exploitation probability cannot be quantified, and the CVE is NOT in CISA KEV, so there is no evidence of active exploitation. A detailed technical write-up with a crafted-document reproduction is published on hackmd by the reporting researcher (VulnCheck), so public proof-of-concept material exists, but POC availability is distinct from active exploitation and should not be conflated. Net assessment: this is a genuine but moderate-priority client-side memory-safety bug - primarily a denial-of-service with a secondary information-leak - not a mass-exploitable remote threat. It warrants patching on systems that process untrusted XPS files, but is not an emergency relative to network-facing unauthenticated RCE. Note: EPSS data is missing and the fix/patch version is not provided in the input, which should be verified with the vendor. |
| Exploit ScenarioDerived | An attacker crafts a malicious XPS document whose PolyBezierSegment or PolyQuadraticBezierSegment Points attribute contains a point count not divisible by three (or two), then delivers it to a victim via email or download. When the victim opens the file in a libgxps-based consumer such as Evince, path_geometry_start_element() reads past the allocation, crashing the viewer or rendering adjacent heap memory into the output. A public technical write-up/PoC describing the crafted-document trigger is available from the reporter. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 15, 2026
Rendering a crafted XPS document drives GNOME libgxps through 0.3.2 (the renderer used by consumers such as Evince) into a heap out-of-bounds read inside path_geometry_start_element(), allowing an attacker to crash the consuming application and leak adjacent heap bytes into rendered output. The trigger is a PolyBezierSegment or PolyQuadraticBezierSegment Points attribute whose point count is not a multiple of three (bezier) or two (quadratic), so exploitation is limited to a local, file-based attack that requires the victim to open or render the malicious document via user interaction (CVSS 4.0 AV:L/UI:P, PR:N) with no authentication or privilege bypass, no code execution, and only low confidentiality impact alongside high availability impact. An independent assessment scores the flaw 6.9 (medium) using CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:H, and no public exploit identified at time of analysis despite a public technical writeup documenting the arity mismatch; the affected range is captured by the wildcard CPE cpe:2.3:a:gnome:libgxps:*:*:*:*:*:*:*:*.
RemediationAI
No vendor-released patch identified at time of analysis; no fixed release version is cited in the advisory set, so remediation must be handled through compensating controls until upstream publishes a corrected libgxps build. The most direct fix is a source-level patch at the referenced locations in libgxps/gxps-path.c (upstream commit f5027ed09c767e8a02e652fbc77dcea79e19e10d, lines 776-785 and 832-848) that rejects or truncates PolyBezierSegment and PolyQuadraticBezierSegment Points arrays whose element count is not divisible by three or two respectively before any coordinate read, which downstream distributions can carry as a backport. Where patching is not immediately possible, block the attack path by preventing untrusted XPS content from reaching libgxps: convert or sanitize incoming XPS files with a hardened converter (or reject them outright), since the arity check must occur before rendering and sanitizing removes the malformed attribute entirely, at the cost of losing fidelity or support for legitimate XPS input. Alternatively, run XPS-consuming viewers such as Evince inside a sandbox (bubblewrap/Flatpak or a similar jail) to limit the blast radius of the crash and the heap-disclosure read, accepting reduced desktop integration and filesystem access, and note that address-space randomization does not mitigate this bug because the out-of-bounds read is deterministic and heap-layout independent. Consult https://gitlab.gnome.org/GNOME/libgxps and https://www.vulncheck.com/advisories/gnome-libgxps-through-0.3.2-heap-out-of-bounds-read-via-path-geometry-start-element for vendor and advisory updates, and treat the public writeup at https://hackmd.io/@haind-pwn/libgxps-poly-segment-points-arity-oob-read as an indicator that the flaw is publicly understood, even though no exploit code has been identified at time of analysis.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
libgxps is GNOME's GObject-based library for parsing and rendering XPS (OpenXPS/XPS, ECMA-388) documents, and it is linked by document viewers such as Evince, which means the bug propagates to any application that renders untrusted XPS files. The vulnerable code lives in libgxps/gxps-path.c, specifically the path-geometry handling around lines 776-785 and 832-848 in the upstream source referenced by the advisory, where PolyBezierSegment and PolyQuadraticBezierSegment elements are converted into cairo path operations. Per the XPS specification, a bezier poly-segment must carry a point count divisible by three (two control points plus an endpoint per curve) and a quadratic poly-segment a count divisible by two, but the parser consumes the Points attribute array using index arithmetic that assumes well-formed arity instead of validating it. Supplying a count such as 4 for a bezier segment therefore makes the loop read one or more coordinates past the end of the heap allocation, the classic CWE-125 out-of-bounds read root-cause class: insufficient validation of attacker-controlled array length before sequential reads. The consequence is twofold - out-of-bounds heap bytes can be coerced into cairo path coordinates and thereby rendered into output (limited information disclosure, C:L), and malformed access patterns can abort the process (A:H), which is why the assessed vector is local, user-interaction-dependent, and constrained well below remote unauthenticated severity.
Know when Gnome gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:L/VI:N/VA:H/SC:N/SI:N/SA:N
File must be opened locally (AV:L, UI:R), no auth (PR:N); crash drives A:H while only adjacent heap bytes leak (C:L) and no integrity impact (I:N).
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
GNOME libgxps through 0.3.2 contains a heap out-of-bounds read in path_geometry_start_element() that allows attackers to read past allocations via crafted PolyBezierSegment or PolyQuadraticBezierSegment Points attributes. Attackers can supply a point count not divisible by three or two in a crafted XPS document to crash consumers like Evince and render adjacent heap memory into output.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
backend/comics/comics-document.c (aka the comic book backend) in GNOME Evince before 3.24.1 allows remote attackers to e
Network Manager VPNC plugin (aka networkmanager-vpnc) before version 1.2.6 is vulnerable to a privilege escalation attac
gio/gsocks4aproxy.c in GNOME GLib before 2.82.1 has an off-by-one error and resultant buffer overflow because SOCKS4_CON
Multiple integer overflows in the (1) vnc_connection_server_message and (2) vnc_color_map_set functions in gtk-vnc befor
GNOME OCRFeeder before 0.8.4 allows OS command injection via shell metacharacters in a PDF or image filename. Rated crit
libsoup from versions 2.65.1 until 2.68.1 have a heap-based buffer over-read because soup_ntlm_parse_challenge() in soup
Gnome Pango 1.42 and later is affected by: Buffer Overflow. Rated critical severity (CVSS 9.8), this vulnerability is re
In GNOME GLib 2.56.1, g_markup_parse_context_end_parse() in gmarkup.c has a NULL pointer dereference. Rated critical sev
Heap-based buffer overflow in GLib's g_escape_uri_string() function allows local attackers to achieve high-integrity and
An exploitable heap overflow vulnerability exists in the gdk_pixbuf__jpeg_image_load_increment functionality of Gdk-Pixb
Eye of GNOME (aka eog) 3.16.5, 3.17.x, 3.18.x before 3.18.3, 3.19.x, and 3.20.x before 3.20.4, when used with glib befor
An exploitable integer overflow vulnerability exists in the tiff_image_parse functionality of Gdk-Pixbuf 2.36.6 when com
EUVD-2026-102259
GHSA-28f7-fxcp-c8vq
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB