
Preuve de concept et rapport technique pour CVE-2026-73321, une vulnérabilité de déni de service dans XenForo causée par du BBCode profondément imbriqué qui épuise les workers PHP.
XenForo avant la version 2.3.13 peut épuiser un worker PHP via du BBCode profondément imbriqué.
La route publique editor/to-html envoie le BBCode fourni par un invité au parseur et au moteur de rendu récursifs de XenForo. Aucune limite de longueur brute ou de profondeur d'imbrication n'est appliquée avant ce traitement. Le chemin normal de préparation des messages traite également le BBCode avant la validation finale de la longueur du message.
Sur une installation autorisée de XenForo 2.3.12 (build 2031270), une seule requête d'invité contenant 5 000 balises [quote] imbriquées (75 005 octets) a réinitialisé la connexion. Apache a enregistré une sortie de débordement de pile Windows (0xC00000FD) pour le processus enfant PHP et l'a redémarré.
Ce dépôt documente délibérément le comportement plus restreint directement établi par le test : une requête non authentifiée peut faire planter/recycler un worker, et des requêtes concurrentes répétées peuvent réduire la disponibilité. Il ne revendique ni exécution de code, ni accès aux données, ni persistance, ni indisponibilité permanente à l'échelle de l'hôte. XenForo 2.3.13 contient le correctif.
python poc.py https://xenforo.example 5000 --confirm-disruption
Le script envoie exactement une requête et plafonne la profondeur à 5 000. Il exige un accusé de réception explicite de la perturbation. Exécutez-le uniquement sur une installation isolée tout en surveillant le journal d'erreurs du serveur web et l'état des processus.
Découvert par Marco Paciaroni (BomboBombone).