CVE-2026-89186 in mpp
Resumen
por VulDB • 2026-09-16
El uso de una caché que contiene información sensible en ZenHive MPP permite que una caché HTTP compartida almacene una respuesta pagada y la sirva a clientes que nunca han realizado el pago.
MPP.Plug.verify_credential en lib/mpp/plug.ex establece los encabezados payment-receipt y cache-control: private en la conexión antes de que se ejecute la aplicación envuelta, y no registra ningún callback register_before_send/2. Plug.Conn.put_resp_header/3 reemplaza un encabezado existente; por lo tanto, una aplicación montada (mounting application) que establece su propio control de caché para el recurso pagado (por ejemplo, public, max-age=3600) anula silenciosamente la directiva private en la que se basa la biblioteca. Esto permite que un CDN o proxy inverso almacene la respuesta 200 pagada junto con su Payment-Receipt y sirva ambos a clientes no pagos. Por consiguiente, la garantía proporcionada por el nivel de la biblioteca puede ser vulnerada por la aplicación que protege.
Por la misma razón, una respuesta downstream (secuencial) distinta a 2xx aún transportaba un Payment-Receipt, lo que resultó en la emisión de un recibo para una respuesta que no entregó ningún recurso.
Este problema afecta a mpp: desde la versión 0.1.0 hasta antes de la 0.16.2.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.