Bug 2564418 (CVE-2026-120194)

Summary: CVE-2026-120194 json-glib: json-glib: infinite loop in json_path_query() with negative JSONPath slice step
Product: [Other] Security Response Reporter: OSIDB Bzimport <bzimport>
Component: vulnerabilityAssignee: Product Security <prodsec-ir-bot>
Status: NEW --- QA Contact:
Severity: high Docs Contact:
Priority: high    
Version: unspecifiedCC: akhatavk, aos-team-art-private, asdas, dpaolell, jdelft, jupierce, lgarciaa, mbiarnes, ppalepu, ppostler, prdhamdh, rhel-process-autobot, sghai, sidsharm, suppawar, vlaad, watson-tool-maintainers
Target Milestone: ---Keywords: Security
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: ---
Doc Text:
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.
Story Points: ---
Clone Of: Environment:
Last Closed: Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 2564420, 2564421, 2564422, 2564423, 2564424, 2564425, 2564426, 2564427    
Bug Blocks:    

Description OSIDB Bzimport 2026-10-31 10:04:39 UTC
A flaw was found in json-glib. The JSONPath slice evaluator in json_path_query() can enter a non-terminating loop when processing slice expressions that use a negative step (for example, $[:5:-1]). The evaluator iterates with a loop condition that assumes a positive step (i < end while adding step each iteration). When start is less than end and step is negative, the loop index moves away from the termination condition, causing the calling process to hang and resulting in a denial of service. Exploitation requires an application to evaluate an attacker-controlled or otherwise untrusted JSONPath expression using the vulnerable API.