{"id":"CVE-2026-66920","state":"PUBLISHED","title":"Pivotick - Stack Exhaustion Denial of Service via Deep or Cyclic Graph Data","description":"Pivotick contains an uncontrolled-recursion vulnerability when processing caller-supplied graph and node data. The affected graph algorithms recursively traversed graph edges, while the JSON viewer recursively processed each level of a node’s data structure. A specially crafted graph containing an excessively long path, deeply nested properties, or circular object references could therefore exhaust the JavaScript call stack when Pivotick calculates a layout or displays a node in the inspection modal.\n\nSuccessful exploitation may cause an uncaught exception, freeze the affected page, or crash the browser tab, resulting in a client-side denial of service. No confidentiality or integrity impact has been identified.\n\nThe patch replaces the recursive graph traversals with iterative stack-based implementations and limits the reachability calculation to 1,000,000 edge traversals. It also limits JSON rendering to 64 levels and detects circular references before descending further into an object.","publishedAt":"2026-07-28T12:57:21.098Z","updatedAt":"2026-07-28T19:26:22.732Z","severity":{"score":8.2,"label":"High","version":"4.0","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H","source":"CIRCL"},"assigner":"CIRCL","products":["Pivotick Pivotick"],"affected":[{"vendor":"Pivotick","product":"Pivotick","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThanOrEqual":"1.4.0","versionType":"semver"}],"repo":"https://github.com/Pivotick/Pivotick/"}],"references":["https://github.com/Pivotick/Pivotick/commit/66373141eb7892fc29a3b42cfb2c160af16765fe"],"weaknesses":["CWE-674","CWE-400"],"ingestedAt":"2026-10-29T20:12:41.951Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/66xxx/CVE-2026-66920.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-66920","state":"PUBLISHED","datePublished":"2026-07-28T12:57:21.098Z","dateUpdated":"2026-07-28T19:26:22.732Z","assignerShortName":"CIRCL","assignerOrgId":"5a6e4751-2f3f-4070-9419-94fb35b644e8","dateReserved":"2026-07-28T12:57:17.742Z"},"containers":{"cna":{"title":"Pivotick - Stack Exhaustion Denial of Service via Deep or Cyclic Graph Data","descriptions":[{"lang":"en","value":"Pivotick contains an uncontrolled-recursion vulnerability when processing caller-supplied graph and node data. The affected graph algorithms recursively traversed graph edges, while the JSON viewer recursively processed each level of a node’s data structure. A specially crafted graph containing an excessively long path, deeply nested properties, or circular object references could therefore exhaust the JavaScript call stack when Pivotick calculates a layout or displays a node in the inspection modal.\n\nSuccessful exploitation may cause an uncaught exception, freeze the affected page, or crash the browser tab, resulting in a client-side denial of service. No confidentiality or integrity impact has been identified.\n\nThe patch replaces the recursive graph traversals with iterative stack-based implementations and limits the reachability calculation to 1,000,000 edge traversals. It also limits JSON rendering to 64 levels and detects circular references before descending further into an object."}],"affected":[{"vendor":"Pivotick","product":"Pivotick","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThanOrEqual":"1.4.0","versionType":"semver"}],"repo":"https://github.com/Pivotick/Pivotick/"}],"references":[{"url":"https://github.com/Pivotick/Pivotick/commit/66373141eb7892fc29a3b42cfb2c160af16765fe","tags":["patch"]}],"metrics":[{"cvssV4_0":{"Automatable":"NOT_DEFINED","Recovery":"NOT_DEFINED","Safety":"NOT_DEFINED","attackComplexity":"LOW","attackRequirements":"NONE","attackVector":"NETWORK","baseScore":8.2,"baseSeverity":"HIGH","privilegesRequired":"NONE","providerUrgency":"NOT_DEFINED","subAvailabilityImpact":"HIGH","subConfidentialityImpact":"NONE","subIntegrityImpact":"NONE","userInteraction":"ACTIVE","valueDensity":"NOT_DEFINED","vectorString":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H","version":"4.0","vulnAvailabilityImpact":"HIGH","vulnConfidentialityImpact":"NONE","vulnIntegrityImpact":"NONE","vulnerabilityResponseEffort":"NOT_DEFINED"},"format":"CVSS","scenarios":[{"lang":"en","value":"GENERAL"}]}],"problemTypes":[{"descriptions":[{"cweId":"CWE-674","description":"CWE-674 Uncontrolled Recursion","lang":"en","type":"CWE"}]},{"descriptions":[{"cweId":"CWE-400","description":"CWE-400 Uncontrolled Resource Consumption","lang":"en","type":"CWE"}]}],"providerMetadata":{"shortName":"CIRCL","orgId":"5a6e4751-2f3f-4070-9419-94fb35b644e8","dateUpdated":"2026-07-28T12:57:21.098Z"},"credits":[{"lang":"en","type":"finder","value":"Jeroen Pinoy"},{"lang":"en","type":"remediation developer","value":"Sami Mokaddem"}],"impacts":[{"capecId":"CAPEC-231","descriptions":[{"lang":"en","value":"CAPEC-231 Oversized Serialized Data Payloads"}]}],"source":{"discovery":"UNKNOWN"},"x_generator":{"engine":"Vulnogram 0.2.0"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2026-07-28T19:26:00.072464Z","id":"CVE-2026-66920","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-07-28T19:26:22.732Z"}}]}}}