CVE-2026-89186: CWE-524 Use of Cache Containing Sensitive Information in ZenHive mpp
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. 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. This issue affects mpp: from 0.1.0 before 0.16.2.
AI Analysis
Technical Summary
The vulnerability involves the use of a shared HTTP cache that stores a paid response along with its Payment-Receipt header and serves it to clients who have not paid. The mpp library's Plug.verify_credential function sets payment-receipt and cache-control: private headers before the application runs but does not register a before_send callback to enforce these headers. Since Plug.Conn.put_resp_header/3 replaces existing headers, an application can override the cache-control header to a public value, enabling CDNs or reverse proxies to cache and serve paid content to unpaid clients. Additionally, non-2xx responses may still carry a Payment-Receipt header, issuing receipts for responses that delivered no resource. This affects mpp versions >=0.1.0 and <0.16.2.
Potential Impact
Unauthorized clients may receive paid content cached by shared HTTP caches, potentially leading to unauthorized access to paid resources. Payment receipts may be issued incorrectly for responses that did not deliver content, undermining the integrity of payment verification.
Mitigation Recommendations
No official patch or fix is currently documented. Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. Until a fix is available, applications using mpp should avoid overriding the cache-control header set by the library or implement additional controls to prevent caching of paid responses in shared caches.
CVE-2026-89186: CWE-524 Use of Cache Containing Sensitive Information in ZenHive mpp
Description
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. 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. This issue affects mpp: from 0.1.0 before 0.16.2.
CVSS v4.0
Score 6.3medium
Affected software
ZenHive
mpp
ZenHive
mpp
cpe:2.3:a:ZenHive:mpp:*:*:*:*:*:*:*:*Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
Weaknesses
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The vulnerability involves the use of a shared HTTP cache that stores a paid response along with its Payment-Receipt header and serves it to clients who have not paid. The mpp library's Plug.verify_credential function sets payment-receipt and cache-control: private headers before the application runs but does not register a before_send callback to enforce these headers. Since Plug.Conn.put_resp_header/3 replaces existing headers, an application can override the cache-control header to a public value, enabling CDNs or reverse proxies to cache and serve paid content to unpaid clients. Additionally, non-2xx responses may still carry a Payment-Receipt header, issuing receipts for responses that delivered no resource. This affects mpp versions >=0.1.0 and <0.16.2.
Potential Impact
Unauthorized clients may receive paid content cached by shared HTTP caches, potentially leading to unauthorized access to paid resources. Payment receipts may be issued incorrectly for responses that did not deliver content, undermining the integrity of payment verification.
Mitigation Recommendations
No official patch or fix is currently documented. Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. Until a fix is available, applications using mpp should avoid overriding the cache-control header set by the library or implement additional controls to prevent caching of paid responses in shared caches.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- EEF
- Date Reserved
- 2026-09-11T19:00:02.549Z
- Cvss Version
- 4.0
- State
- PUBLISHED
Threat ID: 6aaa540255bf5e2cf53c6150
Added to database: 09/16/2026, 08:32:02 UTC
Last enriched: 09/16/2026, 08:46:47 UTC
Last updated: 09/16/2026, 22:11:11 UTC
Views: 10
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.