{"id":12419,"date":"2026-09-04T18:59:23","date_gmt":"2026-09-04T10:59:23","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-54592"},"modified":"2026-09-04T18:59:23","modified_gmt":"2026-09-04T10:59:23","slug":"cve-2026-54592","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-54592","title":{"rendered":"CVE-2026-54592 [HIGH] &#8211; Oj (Optimized JSON) is a JSON parser and Object marshaller packaged as a Ruby gem. In vers"},"content":{"rendered":"<p>Oj (Optimized JSON) is a JSON parser and Object marshaller packaged as a Ruby gem. In versions prior to 3.17.3, Oj::Doc#each_child, when invoked recursively over a deeply nested JSON document, overflows a fixed-size stack buffer and aborts the process, leading to DoS.  In a two-step chain in ext\/oj\/fast.c, doc_each_child increments doc-&gt;where past the where_path[MAX_STACK = 100] array with no bounds check and never restores it (the doc-&gt;where&#8211; is missing), so calling each_child recursively from inside the yield block drives doc-&gt;where beyond the array. On the next entry  the function copies the path into the 800-byte stack-local buffer save_path[MAX_STACK]  using wlen = doc-&gt;where &#8211; doc-&gt;where_path, so when the previous recursive call left doc-&gt;where past where_path[100] the wlen exceeds MAX_STACK and  the memcpy overflows save_path on the C stack; because the Oj::Doc parser imposes no JSON nesting-depth limit (relying on a C-stack pressure check), deeply nested attacker input reaches this path. This issue has been fixed in version 3.17.3.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Oj (Optimized JSON) is a JSON parser and Object marshaller packaged as a Ruby gem. In versions prior to 3.17.3, Oj::Doc#each_child, when invoked recursively over a deeply nested JSON document, overflo<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-12419","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/12419","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=12419"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=12419"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=12419"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}