{"id":24430,"date":"2026-09-16T20:32:18","date_gmt":"2026-09-16T12:32:18","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-89186"},"modified":"2026-09-16T20:32:18","modified_gmt":"2026-09-16T12:32:18","slug":"cve-2026-89186","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-89186","title":{"rendered":"CVE-2026-89186 &#8211; Use of Cache Containing Sensitive Information in ZenHive mpp allows a shared HTTP cache to"},"content":{"rendered":"<p>Use of Cache Containing Sensitive Information in ZenHive mpp allows a shared HTTP cache to store a paid response and serve it to clients that never paid.<\/p>\n<p>MPP.Plug.verify_credential in lib\/mpp\/plug.ex sets payment-receipt and cache-control: private on the connection before the wrapped application runs, and registers no register_before_send\/2 callback. Plug.Conn.put_resp_header\/3 replaces an existing header, so a mounting application that sets its own cache-control on the paid resource (for example public, max-age=3600) silently overrides the private the library relies on, and a CDN or reverse proxy can then store the paid 200 together with its Payment-Receipt and serve both to unpaid clients. The library-level guarantee is therefore defeatable by the application it protects. For the same reason a downstream non-2xx response still carried Payment-Receipt, issuing a receipt for a response that delivered no resource.<\/p>\n<p>This issue affects mpp: from 0.1.0 before 0.16.2.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Use of Cache Containing Sensitive Information in ZenHive mpp allows a shared HTTP cache to store a paid response and serve it to clients that never paid.<\/p>\n<p>MPP.Plug.verify_credential in lib\/mpp\/plug.ex<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-24430","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/24430","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=24430"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=24430"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=24430"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}