Skip to main content

json-glib EUVDEUVD-2026-114712

| CVE-2026-120194 HIGH
Loop with Unreachable Exit Condition (Infinite Loop) (CWE-835)
2026-10-31 secalert@redhat.com GHSA-pc2w-7g9p-pr43
7.5
CVSS 3.1 · NVD
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Reach app endpoint accepting JSONPath
  2. Exploit
    Submit slice expression with negative step
  3. Execution
    json_path_query slice evaluator loops infinitely
  4. Impact
    CPU/thread hangs, service denied

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Loop termination conditions
MITRE ATT&CK

1 technique across 1 tactic: Impact

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

The exploitable condition is explicit in the description: the embedding application must evaluate ATTACKER-CONTROLLED JSONPath expressions via json_path_query(), and the attacker must supply a slice expression containing a NEGATIVE STEP to trigger the infinite loop. The key limiting factor is that applications using only fixed, developer-authored, or otherwise trusted JSONPath expressions are not exposed, because the attacker never controls the query string. Impact is confined to availability (a hang/CPU exhaustion); there is no data disclosure or modification. Authentication is not confirmed from the data as a requirement - the CVSS vector lists PR:N, but whether a real attacker is unauthenticated depends on how the embedding application exposes JSONPath input.

Impact

The input signals are consistent in direction but modest in urgency. CVSS 3.1 scores this 7.5 (High) driven entirely by availability impact (A:H) with no confidentiality or integrity effect, over a network vector requiring no privileges or user interaction (AV:N/AC:L/PR:N/UI:N). The vuln.today decision label is 'this_week' rather than act_now/emergency, consistent with a pure denial-of-service bug. No EPSS score, no CISA KEV listing, and no proof-of-concept exploit code are present in the supplied data, so this is not confirmed as actively exploited. The headline CVSS network/unauthenticated rating is real for the library flaw itself, but it materially overstates practical risk for most deployments: exploitation requires the embedding application to pass ATTACKER-CONTROLLED JSONPath expressions to json_path_query(), which is an uncommon design. Where that condition is NOT met (the typical case, where JSONPath queries are hard-coded or trusted), the network vector does not actually apply to an external attacker. Net: a legitimate High-severity availability bug worth patching on a normal cadence, but not a widespread drop-everything emergency absent evidence of exploitation.

Exploit ScenarioDerived

An application exposes a feature that lets users supply JSONPath expressions (e.g., a query/filter API backed by json-glib) and evaluates them with json_path_query(). An attacker submits a slice expression using a negative step, causing the slice evaluator to enter an infinite loop that pins a CPU and hangs the worker/thread, denying service to legitimate users. No public exploit code is identified in the provided sources; the GNOME GitLab issue and Red Hat Bugzilla document the flaw but are not verified working exploits.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 31, 2026

Infinite loop in json-glib's JSONPath slice evaluator lets an attacker hang any application that passes untrusted JSONPath strings to json_path_query(). A slice expression containing a negative step drives the evaluator into a non-terminating loop, spinning CPU and stalling the calling thread, so impact is limited to availability (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H, 7.5) with no disclosure or modification. The prerequisite is narrow but real: the embedding application must evaluate attacker-controlled JSONPath; code that only runs developer-authored queries is not exposed. No public exploit code was identified at time of analysis and the issue is not in CISA KEV, but the underlying flaw is trivially reachable by a single crafted query string and has been triaged for remediation this week.

RemediationAI

No vendor-released fixed version is identified in the available data; track the upstream GNOME issue (https://gitlab.gnome.org/GNOME/json-glib/-/issues/96), the Red Hat advisory (https://access.redhat.com/security/cve/CVE-2026-120194) and Bugzilla 2564418 for the patched release and per-distribution errata before upgrading. Until then, the decisive control is to stop untrusted strings from reaching json_path_query(): if an application or API accepts JSONPath from a client, remove or lock down that input, or validate expressions and reject any slice with a negative step - the trade-off is that legitimate descending-order slice semantics stop working. Where user-supplied expressions are a required feature, evaluate them in a worker thread or subprocess under a hard timeout and terminate on overrun, accepting the added complexity and per-query resource overhead. Restricting the endpoint that exposes JSONPath to trusted networks or authenticated callers reduces reachability but does not fix the loop itself. Deployments that only ever run developer-authored queries need no immediate workaround, though they should still pick up the library update once it ships.

Affected ProductsAI

All releases of json-glib that implement JSONPath slice evaluation with negative steps through json_path_query() are in scope; no version boundary or fixed release is stated in the available references, so the exact first-affected and first-patched versions are unconfirmed from this data. Downstream exposure follows the library: GNOME stack components and any third-party application, service, or language binding that links json-glib and accepts JSONPath expressions from untrusted input. Distributions tracking the package should consult the Red Hat advisory (https://access.redhat.com/security/cve/CVE-2026-120194) and Bugzilla record (https://bugzilla.redhat.com/show_bug.cgi?id=2564418) for per-product version mapping, and the upstream GNOME issue (https://gitlab.gnome.org/GNOME/json-glib/-/issues/96) for the maintainers' analysis and any committed fix.

Affects your stack

Find out whether the stacks and servers you run are on an affected version.

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

json-glib is the C library built on GLib/GObject that GNOME components and many other projects use to parse, generate and query JSON. Its JSONPath support exposes json_path_query(), which parses an expression and walks the document tree; slice expressions of the form [start:end:step] are the part at fault. Supporting a negative step requires iterating indices in reverse, and the loop control in that reverse-traversal path never reaches its termination condition, producing the unbounded loop classified as CWE-835 (Loop with Unreachable Exit Condition). Because the defect is in query evaluation rather than document parsing, a small expression is enough to trigger it - the attacker does not need control of the JSON payload, only of the query string. Triggering therefore depends entirely on how the host application exposes JSONPath input: an application that accepts the expression from a remote client inherits the network-reachable, unauthenticated profile in the assessed CVSS vector (PR:N), while one that evaluates only trusted, developer-supplied expressions is not reachable. The failure mode is a hang rather than memory corruption or a crash, so affected services typically exhibit a stuck thread or pegged core until restarted.

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

NVD PRIMARY 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
vuln.today AI 7.5 HIGH

Infinite-loop hang yields availability-only impact (A:H, C/I:N); remotely reachable with low complexity and no privileges when an app evaluates attacker-supplied JSONPath, so AV:N/AC:L/PR:N.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Primary rating from NVD.

CVSS VectorNVD

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

DescriptionNVD

A flaw was found in json-glib. The JSONPath slice evaluator used by json_path_query() can enter an infinite loop when given a slice expression with a negative step. An application that evaluates attacker-controlled JSONPath expressions can be forced into a hang, leading to a denial of service.

Executive ViewAI

Why It Matters

A high-severity vulnerability in json-glib's JSONPath slice evaluator allows an attacker to cause a denial-of-service by submitting a crafted query that induces an infinite loop. This affects any application that evaluates untrusted JSONPath input, potentially leading to service unavailability and operational disruption. Leadership should prioritize remediation for externally-facing services that process user-supplied JSONPath.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations include validating and sanitizing JSONPath input to block malicious patterns, enforcing query timeouts, and restricting exposure of JSONPath evaluation to trusted users only.

Threat Intelligence Overview

Prevalence
High
Core GNOME JSON library shipped across most Linux desktop/GNOME deployments
Social Media
4
Sightings
Data Quality
3 sources
Confidence: Low

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS N/A
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
High

Priority Score

38
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +38
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

More in Gnome

View all
CVE-2017-1000083 HIGH POC
7.8 Sep 05

backend/comics/comics-document.c (aka the comic book backend) in GNOME Evince before 3.24.1 allows remote attackers to e

CVE-2018-10900 HIGH POC
7.8 Jul 26

Network Manager VPNC plugin (aka networkmanager-vpnc) before version 1.2.6 is vulnerable to a privilege escalation attac

CVE-2024-52533 CRITICAL POC
9.8 Nov 11

gio/gsocks4aproxy.c in GNOME GLib before 2.82.1 has an off-by-one error and resultant buffer overflow because SOCKS4_CON

CVE-2017-5885 CRITICAL POC
9.8 Feb 28

Multiple integer overflows in the (1) vnc_connection_server_message and (2) vnc_color_map_set functions in gtk-vnc befor

CVE-2022-27811 CRITICAL POC
9.8 Mar 24

GNOME OCRFeeder before 0.8.4 allows OS command injection via shell metacharacters in a PDF or image filename. Rated crit

CVE-2019-17266 CRITICAL POC
9.8 Oct 06

libsoup from versions 2.65.1 until 2.68.1 have a heap-based buffer over-read because soup_ntlm_parse_challenge() in soup

CVE-2019-1010238 CRITICAL POC
9.8 Jul 19

Gnome Pango 1.42 and later is affected by: Buffer Overflow. Rated critical severity (CVSS 9.8), this vulnerability is re

CVE-2018-16428 CRITICAL POC
9.8 Sep 04

In GNOME GLib 2.56.1, g_markup_parse_context_end_parse() in gmarkup.c has a NULL pointer dereference. Rated critical sev

CVE-2025-13601 HIGH POC
7.7 Nov 26

Heap-based buffer overflow in GLib's g_escape_uri_string() function allows local attackers to achieve high-integrity and

CVE-2017-2862 HIGH POC
7.8 Sep 05

An exploitable heap overflow vulnerability exists in the gdk_pixbuf__jpeg_image_load_increment functionality of Gdk-Pixb

CVE-2016-6855 HIGH POC
7.5 Sep 07

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

CVE-2017-2870 HIGH POC
7.8 Sep 05

An exploitable integer overflow vulnerability exists in the tiff_image_parse functionality of Gdk-Pixbuf 2.36.6 when com

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy