
Preuve de concept d'exploitation pour XenForo CVE-2026-73318, un contournement d'autorisation permettant aux administrateurs ACP de déclencher une nouvelle acceptation de la politique à l'échelle du site. Inclut les étapes de reproduction et un script Python.
XenForo avant la version 2.3.13 permet à tout administrateur ACP de déclencher une nouvelle acceptation de la politique de confidentialité et des conditions d'utilisation à l'échelle du site.
Les entrées de navigation ACP sont limitées aux administrateurs disposant de la permission option, mais ForceAgreementController n'applique pas cette permission. Les requêtes directes de tout administrateur ACP authentifié atteignent les deux formulaires ainsi que leurs actions POST modifiant l'état.
Ces actions mettent à jour les horodatages de la politique globale. Les utilisateurs dont l'acceptation enregistrée est antérieure à ces valeurs sont contraints de passer par la barrière d'acceptation correspondante. Le bug ne permet pas à l'administrateur limité de modifier le texte de la politique ; il lui permet de déclencher le flux de nouvelle acceptation à l'échelle du forum en dehors de son rôle assigné.
J'ai reproduit ce problème sur XenForo 2.3.12 (build 2031270) avec un administrateur non-super disposant uniquement d'une permission ACP sans rapport. Le compte a reçu une réponse HTTP 403 depuis Options mais une réponse HTTP 200 depuis les deux routes force-agreement. XenForo 2.3.13 contient le correctif.
python poc.py https://xenforo.example LIMITED_ADMIN --confirm
Le mot de passe est lu via une invite masquée. Cela modifie deux horodatages globaux. Utilisez un forum isolé, enregistrez les valeurs d'origine et restaurez-les après le test.
Découvert par Marco Paciaroni (BomboBombone).