CVE-2026-89186 in mpp
Zusammenfassung
von VulDB • 16.09.2026
Die Verwendung eines Caches mit sensiblen Informationen in ZenHive MPP ermöglicht es einem gemeinsam genutzten HTTP-Cache, eine bezahlte Antwort zu speichern und diese an Clients auszuliefern, die nie bezahlt haben.
MPP.Plug.verify_credential in lib/mpp/plug.ex legt vor der Ausführung der umschlossenen Anwendung Payment-Receipt und cache-control: private auf der Verbindung fest und registriert keinen register_before_send/2-Callback. Plug.Conn.put_resp_header/3 ersetzt einen vorhandenen Header, sodass eine eingebundene Anwendung, die für die bezahlte Ressource ihren eigenen Cache-Control-Wert setzt (z. B. public, max-age=3600), das private-Header, auf das die Bibliothek vertraut, stillschweigend überschreibt. Ein CDN oder Reverse Proxy kann daraufhin die bezahlte 200-Antwort zusammen mit ihrer Payment-Receipt speichern und beide an unbezahlte Clients ausliefern. Die sicherheitsrelevante Garantie auf Bibliotheksebene ist daher durch die Anwendung, die sie schützen soll, umgehbar. Aus demselben Grund wurde bei einer nachgelagerten Nicht-2xx-Antwort weiterhin eine Payment-Receipt gesendet, was der Ausstellung eines Quittungsbelegs für eine Antwort entspricht, die keine Ressource bereitgestellt hat.
Dieses Problem betrifft mpp: ab Version 0.1.0 bis vor 0.16.2.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.