{"id":36109,"date":"2026-10-13T04:31:54","date_gmt":"2026-10-12T20:31:54","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-105274"},"modified":"2026-10-13T04:31:54","modified_gmt":"2026-10-12T20:31:54","slug":"cve-2026-105274","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-105274","title":{"rendered":"CVE-2026-105274 &#8211; Improper Handling of Highly Compressed Data (Data Amplification) vulnerability in hexpm he"},"content":{"rendered":"<p>Improper Handling of Highly Compressed Data (Data Amplification) vulnerability in hexpm hex_core allows an untrusted repository mirror, or a server answering hex_core&#8217;s API requests, to exhaust the memory of the Erlang VM running hex_core. The same code is vendored in Hex (mix_hex_repo, mix_hex_api) and rebar3 (r3_hex_repo, r3_hex_api).<\/p>\n<p>hex_repo:get_names\/1, hex_repo:get_versions\/1, hex_repo:get_package\/2 and hex_repo:get_policy\/2 decompress the registry response with zlib:gunzip\/1 and decode the signed envelope before verifying its signature. A mirror doesn&#8217;t have the repository&#8217;s private key, but it chooses the compressed bytes, so a small response decompresses into an envelope of any size before the signature check rejects it.<\/p>\n<p>hex_api decodes responses with the application\/vnd.hex+erlang content type through hex_safe_binary_to_term:safe_binary_to_term\/1, which calls binary_to_term(Binary, [safe]). The safe option prevents atom creation, but it accepts compressed terms and doesn&#8217;t limit the size of the decoded term, and the check that rejects functions and ports runs after the term has been built. The fix for CVE-2026-21619 added the safe option and that check without bounding the decoded size.<\/p>\n<p>This issue affects rebar3: from 3.9.1 before 3.27.3; hex: from 2.1.0 before 2.5.2; hex_core: from 0.1.0 before 0.20.0.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Improper Handling of Highly Compressed Data (Data Amplification) vulnerability in hexpm hex_core allows an untrusted repository mirror, or a server answering hex_core&#8217;s API requests, to exhaust the me<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-36109","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/36109","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=36109"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=36109"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=36109"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}