
Proof-of-concept e descrizione tecnica per CVE-2026-73316, una vulnerabilità di replay del webhook REST di PayPal in XenForo precedente alla versione 2.3.13, inclusi passaggi di riproduzione e dettagli della correzione.
XenForo precedente alla 2.3.13 elabora più di una volta lo stesso webhook PayPal REST valido.
Il provider PayPal REST sovrascrive il validatore di transazioni di base di XenForo ma omette la ricerca del log delle transazioni duplicate. Anche l'indice del database non è univoco. Due consegne byte-identiche e firmate validamente con un solo ID di transazione possono quindi eseguire due volte il completamento dell'acquisto.
Ho riprodotto il problema su XenForo 2.3.12 (build 2031270) utilizzando un aggiornamento ricorrente usa e getta. Entrambe le callback hanno restituito HTTP 200, creato righe di log di pagamento separate ed esteso la stessa autorizzazione. Il modello di attacco richiede una callback autentica o un nuovo tentativo/reinvio legittimo del provider; questo bug non falsifica la firma.
XenForo 2.3.13 contiene la correzione.
Salva localmente un corpo di callback di test autorizzato e le relative intestazioni, quindi esegui:
python poc.py https://xenforo.example headers.json callback.json
Lo script invia esattamente due copie e stampa solo i due stati HTTP. Non committare i file di input: potrebbero contenere materiale di callback reale. Utilizza un acquisto usa e getta e ripristina il suo stato dopo il test.
Scoperto da Marco Paciaroni (BomboBombone).