
Proof-of-concept e descrizione tecnica per CVE-2026-73321, una vulnerabilità denial-of-service in XenForo causata da BBCode profondamente annidato che esaurisce i worker PHP.
XenForo precedente alla 2.3.13 può esaurire un worker PHP tramite BBCode profondamente annidato.
La rotta pubblica editor/to-html invia il BBCode fornito dagli ospiti attraverso il parser e il renderer ricorsivi di XenForo. Non applica un limite di lunghezza grezza o di annidamento prima di tale elaborazione. Anche il normale percorso di preparazione dei messaggi elabora il BBCode prima della validazione finale della lunghezza del messaggio.
Su un'installazione autorizzata di XenForo 2.3.12 (build 2031270), una singola richiesta da ospite contenente 5.000 tag [quote] annidati (75.005 byte) ha resettato la connessione. Apache ha registrato un'uscita per stack-overflow di Windows (0xC00000FD) per il processo figlio PHP e lo ha riavviato.
Questo repository documenta deliberatamente il comportamento più ristretto stabilito direttamente dal test: una singola richiesta non autenticata può causare il crash/riciclo di un worker, e richieste concorrenti ripetute possono ridurre la disponibilità. Non dichiara esecuzione di codice, accesso ai dati, persistenza o un'interruzione permanente a livello di host. XenForo 2.3.13 contiene la correzione.
python poc.py https://xenforo.example 5000 --confirm-disruption
Lo script invia esattamente una richiesta e limita la profondità a 5.000. Richiede un'esplicita conferma di interruzione. Eseguilo solo su un'installazione isolata monitorando il log degli errori del server web e lo stato dei processi.
Scoperto da Marco Paciaroni (BomboBombone).