
Proof-of-concept und technische Ausarbeitung für CVE-2026-73316, eine PayPal-REST-Webhook-Replay-Schwachstelle in XenForo vor 2.3.13, einschließlich Reproduktionsschritten und Details zur Behebung.
XenForo vor Version 2.3.13 verarbeitet denselben gültigen PayPal-REST-Webhook mehr als einmal.
Der PayPal-REST-Anbieter überschreibt den Basis-Transaktionsvalidator von XenForo, lässt dabei aber die Suche im Transaktionsprotokoll zur Erkennung von Duplikaten aus. Auch der Datenbankindex ist nicht eindeutig. Zwei byte-identische, gültig signierte Zustellungen mit derselben Transaktions-ID können daher den Kaufabschluss zweimal ausführen.
Ich habe dies auf XenForo 2.3.12 (Build 2031270) mit einem wegwerfbaren, wiederkehrenden Upgrade reproduziert. Beide Callbacks lieferten HTTP 200 zurück, erzeugten separate Zahlungsprotokollzeilen und verlängerten dieselbe Berechtigung. Das Angreifermodell erfordert einen authentischen Callback oder einen legitimen Wiederholungs-/Erneuten-Sendeversuch des Anbieters; dieser Fehler fälscht die Signatur nicht.
XenForo 2.3.13 enthält den Fix.
Speichern Sie einen autorisierten Test-Callback-Body und dessen Header lokal, und führen Sie dann Folgendes aus:
python poc.py https://xenforo.example headers.json callback.json
Das Skript sendet exakt zwei Kopien und gibt nur die beiden HTTP-Statuscodes aus. Committen Sie die Eingabedateien nicht: Sie können echtes Callback-Material enthalten. Verwenden Sie einen wegwerfbaren Kauf und stellen Sie dessen Zustand nach dem Test wieder her.
Entdeckt von Marco Paciaroni (BomboBombone).