CVE-2026-89186 in mpp
요약
\~에 의해 VulDB • 2026. 09. 16.
ZenHive의 MPP에서 민감한 정보가 포함된 캐시를 사용하면 공유 HTTP 캐시가 유료 응답을 저장하여 결제하지 않은 클라이언트에게 이를 제공하게 됩니다.
lib/mpp/plug.ex에 있는 MPP.Plug.verify_credential는 래핑된 애플리케이션이 실행되기 전에 연결에 payment-receipt 및 cache-control: private를 설정하고, register_before_send/2 콜백을 등록하지 않습니다. Plug.Conn.put_resp_header/3은 기존 헤더를 대체하므로, 유료 리소스에 대해 자체적인 cache-control(예: public, max-age=3600)을 설정하는 마운팅 애플리케이션이 라이브러리가 의존하는 private 값을 묵시적으로 덮어씁니다. 이로 인해 CDN 또는 역방향 프록시가 유료 200 응답과 해당 Payment-Receipt를 함께 저장하여 결제하지 않은 클라이언트에게 둘 다 제공할 수 있습니다. 따라서 이 라이브러리 수준의 보장은 보호 대상 애플리케이션에 의해 무력화될 수 있습니다. 동일한 이유로 하류의 비(非) 2xx 응답에도 여전히 Payment-Receipt가 포함되어 있어, 리소스를 제공하지 않는 응답에 대해 영수증이 발급되는 문제가 발생합니다.
이 문제는 mpp: 0.16.2 이전 버전 중 0.1.0 이상에서 영향을 받습니다.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.