Un patch de vBulletin a été contourné par un chercheur

Un chercheur en sécurité a publié un code de preuve de concept pour contourner un patch du logiciel vBulletin. Le correctif avait été déployé l’année dernière pour une vulnérabilité zero-day découverte le logiciel populaire qui permet de créer des forums en ligne.

Appelant le correctif de la faille un «échec» et «inadéquat pour bloquer l’exploitation», le chercheur en sécurité, Amir Etemadieh, a publié des détails et des exemples de code d’exploitation sur trois plates-formes de développement (Bash, Python et Ruby).

Le 23 septembre 2019, un chercheur en sécurité non identifié a publié un code d’exploitation pour une faille qui permettait l’exécution de code PHP à distance dans vBulletin 5.0 à 5.4, a écrit Etemadieh.

La faille zero-day, CVE-2019-16759, est une vulnérabilité d’exécution de code à distance pré-authentification, qui peut permettre à un attaquant d’exécuter du code malveillant et de prendre le contrôle des forums sans avoir besoin de s’authentifier sur les sites attaqués.

«Cette faille (CVE-2019-16759) a été qualifiée de ‘bugdoor’ en raison de sa simplicité par un chercheur et a reçue un score de 9,9 sur l’échelle CVSS 3.x, ce qui en fait une faille critique», a déclaré le chercheur.

Un correctif a été déployé deux jours plus tard, le 25 septembre 2019, qui «semblait, à l’époque, corriger l’exploit de preuve de concept fourni par le chercheur sans nom», a déclaré Etemadieh.

vbulletin

Il semble que cela n’ait pas été suffisant, car Etemadieh a expliqué comment le patch peut être contourné sur les trois plates-formes de développement dans trois preuves de concepts distinctes.

Le principal problème avec le correctif déployé pour la faille zero-day est lié à la façon dont le système de modèles de vBulletin est structuré et à la façon dont il utilise PHP, a-t-il écrit dans l’article.

«Les modèles ne sont pas réellement écrits en PHP, mais sont écrits dans un langage qui est d’abord traité par le moteur de modèle, puis est sorti sous forme d’une chaîne de code PHP qui est ensuite exécutée via eval() pendant le processus de ‘rendu’, » selon l’article. “Les modèles ne sont pas non plus un élément autonome, mais peuvent être imbriqués dans d’autres modèles, dans la mesure où un modèle peut contenir un certain nombre de modèles enfants.”

Le patch est “myope” car il rencontre des problèmes lors de la rencontre d’un modèle enfant contrôlé par l’utilisateur, a écrit Etemadieh. Dans ce cas, un modèle parent sera vérifié pour valider que la chaîne de routage ne se termine pas par widget_php, a déclaré Etemadieh.

vbulletin

«Cependant, nous ne pouvons toujours pas fournir une charge utile dans la valeur widgetConfig en raison du code dans le processus de rendu, qui nettoie la valeur widgetConfig avant l’exécution des modèles», écrit-il dans son article.

Etemadieh poursuit en montrant comment un autre modèle qui apparaît dans le correctif est «un assistant parfait pour contourner le précédent correctif CVE-2019-16759» grâce à deux fonctionnalités clés: la capacité du modèle à charger un modèle enfant contrôlé par l’utilisateur, et comment il charge le modèle enfant en prenant une valeur à partir d’une valeur nommée séparément et en la plaçant dans une variable nommée «widgetConfig».

«Ces deux caractéristiques du modèle ‘widget_tabbedcontainer_tab_panel’ nous permettent de contourner efficacement tous les filtrages précédemment effectués pour empêcher l’exploitation de CVE-2019-16759», écrit-il.

On ne sait pas si Etemadieh a informé vBulletin avant de publier les solutions de contournement. Cependant, un rapport de ZDNet suggère qu’il ne l’a pas fait. Quoi qu’il en soit, il a fourni une solution rapide pour son contournement du correctif dans son article, montrant comment désactiver les widgets PHP dans les forums de vBulletin qui «peuvent casser certaines fonctionnalités mais vous protégeront des attaques jusqu’à ce qu’un correctif soit publié par vBulletin», il a écrit.

Comment sécuriser son forum vBulletin?

Pour appliquer le nouveau correctif, les administrateurs doivent:

  1. Accédez au panneau de configuration de l’administrateur de vBulletin.
  2. Cliquez sur «Paramètres» dans le menu de gauche, puis sur «Options» dans la liste déroulante.
  3. Choisissez «Paramètres généraux», puis cliquez sur «Modifier les paramètres»
  4. Recherchez “Désactiver le rendu PHP, HTML statique et module publicitaire”. Définissez sur “Oui”.
  5. Cliquez sur “Enregistrer”

Les forums en ligne sont une cible populaire pour les pirates car ils ont généralement une base d’utilisateurs large et diversifiée et stockent une grande quantité d’informations personnellement identifiables des utilisateurs.

En effet, les pirates n’ont pas perdu de temps à utiliser le contournement d’Etemadieh pour tenter de pirater le forum lors de la conférence sur la sécurité DEF CON, selon un message sur Twitter de DEFCON et du fondateur de Black Hat, Jeff Moss. Cependant, les administrateurs ont rapidement appliqué les conseils d’Etemadieh pour désactiver PHP et contrecarrer l’attaque, a-t-il tweeté.

“Désactivez le rendu PHP pour vous protéger jusqu’à ce qu’il soit corrigé!” a conseillé Moss.

S’abonner
Notifier de
guest
0 Commentaires
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x