Detect circular module imports to prevent stack overflow

jq used to recurse without bound on mutual or self-referential
`import` declarations, exhausting the stack. Track each library's
load state with a `loading` flag set before its dependencies are
processed; a recursive reference to an in-progress library now
reports "circular import of X".

Fixes CVE-2026-44777.
This commit is contained in:
itchyny committed 2026-05-11 20:41:38 +09:00
1 parent 9d223f153c
commit f58787c418
6 files changed
+70 -20

No files matched your search

+2
View File
@@ -0,0 +1,2 @@
import "cycle_self" as s;
def f: null;