Nous exploitons un forum Discourse et avons reçu un rapport externe signalant une vulnérabilité d’injection de code stocké via le mécanisme onebox / allowed_onebox_iframes. Avant de prendre des mesures, je souhaiterais obtenir l’aide de la communauté/de l’équipe pour confirmer si le comportement décrit est réellement possible sur les versions actuelles de Discourse.
Le rapport affirme que :
- Discourse transforme en onebox une URL brute sur sa propre ligne et intègre le
twitter:playerde la page sous forme d’iframe pour tous les visiteurs. - La correspondance d’origine pour la liste blanche des iframes est « basée uniquement sur le préfixe », si bien qu’un hôte comme
www.youtube.com.attacker.exampleserait accepté comme une intégration YouTube légitime tout en servant du HTML contrôlé par l’attaquant. - La valeur par défaut de
allowed_onebox_iframesagit comme un joker.
Ma compréhension est que (a) Discourse compare les hôtes des iframes de la liste blanche sur la base de la limite de domaine plutôt que sur un simple préfixe, et que (b) la liste blanche par défaut des iframes onebox est une liste de fournisseurs soigneusement sélectionnée, et non *. Quelqu’un peut-il confirmer comment fonctionne la correspondance des hôtes pour allowed_onebox_iframes dans la version actuelle, et si une astuce de suffixe de sous-domaine comme celle décrite pourrait réellement passer la validation ?
Nous utilisons la version Discourse v2026.8.0-latest. Nous sommes heureux de partager le rapport brut en privé avec l’équipe de sécurité si cela s’avère utile.
Merci.