{"id":"GHSA-jgvr-6x5w-hx5w","summary":"Zoo Design Studio: Recursive KCL parsing is vulnerable to denial-of-service","details":"### Impact\nFeeding a KCL program that wraps an expression in deep, unnecessary parentheses triggers the parser’s recursive `expression` -\u003e `unnecessarily_bracketed` -\u003e `expression` path. With enough nesting, the call stack grows until it exceeds the process stack limit, causing a stack overflow.","modified":"2026-08-20T18:45:41.827833385Z","published":"2026-08-20T18:34:05Z","database_specific":{"github_reviewed_at":"2026-08-20T18:34:05Z","nvd_published_at":null,"cwe_ids":["CWE-770"],"severity":"MODERATE","github_reviewed":true},"references":[{"type":"WEB","url":"https://github.com/KittyCAD/modeling-app/security/advisories/GHSA-jgvr-6x5w-hx5w"},{"type":"PACKAGE","url":"https://github.com/KittyCAD/modeling-app"}],"affected":[{"package":{"name":"zoo-kcl","ecosystem":"PyPI","purl":"pkg:pypi/zoo-kcl"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.3.129"}]}],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/08/GHSA-jgvr-6x5w-hx5w/GHSA-jgvr-6x5w-hx5w.json"}},{"package":{"name":"kcl-lib","ecosystem":"crates.io","purl":"pkg:cargo/kcl-lib"},"ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"0.3.129"}]}],"database_specific":{"last_known_affected_version_range":"\u003c 0.2.129","source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/08/GHSA-jgvr-6x5w-hx5w/GHSA-jgvr-6x5w-hx5w.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V4","score":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N"}]}