
Proof-of-concept exploit e write-up tecnico per CVE-2026-73317, un bypass dell'autorizzazione in XenForo che consente ad amministratori con permessi limitati di approvare contenuti come un altro utente tramite il dispatcher di ricostruzione cache dell'ACP.
XenForo precedente alla 2.3.13 consente a un amministratore con solo il permesso di ricostruzione della cache di inviare un job di approvazione come un altro utente.
L'endpoint di ricostruzione dell'ACP accetta una classe di job e opzioni fornite dal chiamante. Il suo controllo di autorizzazione verifica solo se il job scelto dichiara di essere attivabile dall'utente. XF:ApprovalQueueProcess supera questo controllo e accetta sia un'azione di approvazione sia un valore asUserId.
Il job viene eseguito all'interno di XF::asVisitor() come account selezionato. Un amministratore con permessi limitati può quindi approvare contenuti in coda senza il permesso di coda di approvazione o di moderatore, e il registro di moderazione attribuisce l'azione all'utente impersonato.
Ho riprodotto il caso minimale su XenForo 2.3.12 (build 2031270): un amministratore non super con solo rebuildCache non poteva aprire la coda di approvazione ma ha approvato un utente moderato usa-e-getta tramite il job nascosto. XenForo 2.3.13 contiene la correzione.
python poc.py https://xenforo.example LIMITED_ADMIN AS_USER_ID DISPOSABLE_MODERATED_USER_ID --confirm
La password viene letta con un prompt nascosto. Lo script esegue una singola approvazione che modifica lo stato, quindi usa solo utenti usa-e-getta e controlla il registro di moderazione in seguito.
Scoperto da Marco Paciaroni (BomboBombone).