{"id":29866,"date":"2026-09-27T12:32:33","date_gmt":"2026-09-27T04:32:33","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-100863"},"modified":"2026-09-27T12:32:33","modified_gmt":"2026-09-27T04:32:33","slug":"cve-2026-100863","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-100863","title":{"rendered":"CVE-2026-100863 [MEDIUM] &#8211; Heym versions 0.0.90 and earlier contain two server-side request forgery (SSRF) egress gap"},"content":{"rendered":"<p>Heym versions 0.0.90 and earlier contain two server-side request forgery (SSRF) egress gaps, both remediated in app\/services\/ssrf_guard.py in 0.0.91. First, the LLM image-edit input loader (_load_image_bytes) fetched caller-controlled HTTP\/HTTPS URLs with a bare httpx.get, applying only a scheme check and bypassing the egress-pinning HTTP client; because the workflow DSL supports &#8220;imageInput&#8221;: &#8220;$userInput.body.imageUrl&#8221;, a webhook or API caller can choose the fetch target when a workflow author uses that expression, allowing requests to loopback, RFC1918, and cloud metadata endpoints. Second, _is_public_address unwrapped only IPv4-mapped IPv6 addresses, so IPv6 transition forms \u2014 the NAT64 well-known prefix 64:ff9b::\/96, deprecated IPv4-compatible ::x.x.x.x addresses, and 6to4 (2002::\/16, classified as globally routable by Python 3.11.0 through 3.11.9) \u2014 could carry loopback, RFC1918, link-local, or cloud-metadata IPv4 destinations past both the initial URL validation and the dial-time IP pin. Version 0.0.91 routes the image loader through guard_http_url and the guarded client, evaluates NAT64 and IPv4-compatible addresses by their embedded IPv4 address, and refuses 64:ff9b:1::\/48, 6to4, and Teredo (2001::\/32) outright.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Heym versions 0.0.90 and earlier contain two server-side request forgery (SSRF) egress gaps, both remediated in app\/services\/ssrf_guard.py in 0.0.91. First, the LLM image-edit input loader (_load_imag<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-29866","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/29866","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=29866"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=29866"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=29866"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}