
Preuve de concept d'exploitation et analyse technique pour CVE-2026-73317, un contournement d'autorisation dans XenForo permettant à des administrateurs limités d'approuver du contenu en tant qu'un autre utilisateur via le répartiteur de reconstruction de cache de l'ACP.
XenForo avant la version 2.3.13 permet à un administrateur disposant uniquement de la permission de reconstruction du cache de déclencher une tâche d'approbation en tant qu'un autre utilisateur.
Le point de terminaison de reconstruction de l'ACP accepte une classe de tâche et des options fournies par l'appelant. Sa vérification d'autorisation demande uniquement si la tâche choisie se déclare elle-même déclenchable par l'utilisateur. XF:ApprovalQueueProcess réussit cette vérification et accepte à la fois une action d'approbation et une valeur asUserId.
La tâche s'exécute dans XF::asVisitor() en tant que compte sélectionné. Un administrateur aux permissions limitées peut donc approuver du contenu en file d'attente sans permission de file d'approbation ou de modérateur, et le journal de modération attribue l'action à l'utilisateur usurpé.
J'ai reproduit le cas minimal sur XenForo 2.3.12 (build 2031270) : un administrateur non-super avec uniquement rebuildCache ne pouvait pas ouvrir la file d'approbation mais a approuvé un utilisateur modéré jetable via la tâche cachée. XenForo 2.3.13 contient le correctif.
python poc.py https://xenforo.example LIMITED_ADMIN AS_USER_ID DISPOSABLE_MODERATED_USER_ID --confirm
Le mot de passe est lu via une invite masquée. Le script effectue une seule approbation modifiant l'état, utilisez donc uniquement des utilisateurs jetables et examinez le journal de modération par la suite.
Découvert par Marco Paciaroni (BomboBombone).