{"id":11607,"date":"2026-09-04T18:53:44","date_gmt":"2026-09-04T10:53:44","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-55585"},"modified":"2026-09-04T18:53:44","modified_gmt":"2026-09-04T10:53:44","slug":"cve-2026-55585","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-55585","title":{"rendered":"CVE-2026-55585 [HIGH] &#8211; QWED is open-source AI verification infrastructure for deterministic verification of LLM o"},"content":{"rendered":"<p>QWED is open-source AI verification infrastructure for deterministic verification of LLM outputs, tool calls, code, schemas, and agent state before production execution. Prior to 5.1.2, the qwed package passes caller-controlled math expressions directly to SymPy parse_expr() without restricted global_dict and local_dict namespaces, allowing Python eval() to resolve builtins and execute arbitrary Python code in the API server process. In src\/qwed_new\/api\/main.py, POST \/verify\/math is protected by get_current_tenant but accepts any valid tenant API key, reads the expression field, applies only a cosmetic re.sub(r'(d)(()&#8217;, r&#8217;1*2&#8242;, expression) normalization, and passes the result to parse_expr(). In src\/qwed_new\/core\/batch.py, POST \/verify\/batch sends math items through batch_service.create_job(), stores item.query verbatim, and _verify_item() passes VerificationType.MATH input to parse_expr() without sanitization. The default-enabled POST \/auth\/signup endpoint allows anyone to create a standard tenant account, POST \/auth\/api-keys issues an x-api-key, and either vulnerable path can then be used to read or write files, modify data, execute operating system commands, terminate the service, and compromise other tenants in a shared deployment. This issue is fixed in version 5.1.2.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>QWED is open-source AI verification infrastructure for deterministic verification of LLM outputs, tool calls, code, schemas, and agent state before production execution. Prior to 5.1.2, the qwed packa<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-11607","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/11607","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=11607"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=11607"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=11607"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}