Les chercheurs ont découvert quatre modes de jeu qui pourraient exploiter avec succès une vulnérabilité critique qui n’a pas été corrigée dans le populaire Dota 2 jeu vidéo pendant 15 mois après la mise à disposition d’un correctif.
La vulnérabilité, identifiée comme CVE-2021-38003, résidait dans le moteur JavaScript open source de Google connu sous le nom de V8, qui est intégré dans Dota 2. Bien que Google ait corrigé la vulnérabilité en octobre 2021, Dota 2 Le développeur Valve n’a mis à jour son logiciel pour utiliser le moteur V8 corrigé que le mois dernier après que des chercheurs ont alerté en privé l’entreprise que la vulnérabilité critique était ciblée.
Intentions peu claires
Un pirate a profité du retard en publiant en mars dernier un mode de jeu personnalisé qui exploitait la vulnérabilité, ont déclaré des chercheurs de la société de sécurité Avast. Ce même mois, le même pirate a publié trois modes de jeu supplémentaires qui ont très probablement aussi exploité la vulnérabilité. En plus de corriger la vulnérabilité le mois dernier, Valve a également supprimé les quatre modes.
Les modes personnalisés sont des extensions ou même des jeux complètement nouveaux qui s’exécutent par-dessus Dota 2. Ils permettent aux personnes ayant même une expérience de base en programmation de mettre en œuvre leurs idées pour un jeu, puis de les soumettre à Valve. Le fabricant du jeu soumet ensuite les soumissions à un processus de vérification et, si elles sont approuvées, les publie.
Le premier mode de jeu publié par Valve semble être un projet de preuve de concept pour exploiter la vulnérabilité. Il était intitulé « test addon plz ignore » (ID 1556548695) et comprenait une description qui exhortait les gens à ne pas le télécharger ou l’installer. Le code d’exploitation pour CVE-2021-38003 était intégré au mode. Alors qu’une partie de l’exploit a été tirée du code de preuve de concept publié dans le traqueur de bogues Chromium, le développeur du mode en a écrit une grande partie à partir de zéro. Le mode comprenait beaucoup de code commenté et un fichier intitulé « evil.lua » suggérant en outre que le mode était un test.
Les chercheurs d’Avast ont ensuite trouvé trois autres modes personnalisés que le même développeur avait publiés sur Valve. Ces modes, intitulés « Overdog, pas de héros gênants » (id 2776998052), « Custom Hero Brawl » (id 2780728794) et Overthrow RTZ Edition X10 XP (id 2780559339), ont adopté une approche beaucoup plus secrète.
Jan Vojtěšek, chercheur chez Avast, a expliqué :
Le code malveillant de ces trois nouveaux modes de jeu est beaucoup plus subtil. Il n’y a aucun fichier nommé evil.lua ni aucun exploit JavaScript directement visible dans le code source. Au lieu de cela, il n’y a qu’une simple porte dérobée composée d’une vingtaine de lignes de code seulement. Cette porte dérobée peut exécuter du JavaScript arbitraire téléchargé via HTTP, donnant à l’attaquant non seulement la possibilité de cacher le code d’exploitation, mais également la possibilité de le mettre à jour à sa discrétion sans avoir à mettre à jour l’intégralité du mode de jeu personnalisé (et en passant par le mode de jeu risqué Processus de vérification).
Le serveur contacté par ces trois modes ne fonctionnait plus lorsque les chercheurs d’Avast ont découvert les modes. Mais étant donné qu’ils ont été publiés par le même développeur 10 jours après le premier mode, Avast dit qu’il y a une forte probabilité que le code téléchargé exploite également CVE-2021-38003.
Dans un e-mail, Vojtěšek a décrit le flux de fonctionnement de la porte dérobée de cette manière :
La victime entre dans un jeu en jouant à l’un des modes de jeu malveillants.
Le jeu se charge comme prévu, mais en arrière-plan, un JavaScript malveillant contacte le serveur du mode de jeu.
Le code du serveur du mode de jeu atteint le serveur C&C de la porte dérobée, télécharge un morceau de code JavaScript (vraisemblablement, l’exploit pour CVE-2021-38003) et renvoie le code téléchargé à la victime.
La victime exécute dynamiquement le JavaScript téléchargé. S’il s’agissait de l’exploit pour CVE-2021-38003, cela entraînerait l’exécution de shellcode sur la machine victime.
Les représentants de Valve n’ont pas répondu à un e-mail sollicitant des commentaires sur cette histoire.
Les chercheurs ont cherché d’autres Dota 2 modes de jeu qui exploitaient la vulnérabilité, mais leur piste s’est refroidie. En fin de compte, cela signifie qu’il n’est pas possible de déterminer précisément quelles étaient les intentions du développeur pour les modes, mais le message d’Avast a déclaré qu’il y avait deux raisons de soupçonner qu’ils n’étaient pas uniquement destinés à des recherches bénignes.
« Premièrement, l’attaquant n’a pas signalé la vulnérabilité à Valve (ce qui serait généralement considéré comme une bonne chose à faire) », a écrit Vojtěšek. « Deuxièmement, l’attaquant a tenté de cacher l’exploit dans une porte dérobée furtive. Quoi qu’il en soit, il est également possible que l’attaquant n’ait pas non plus eu d’intentions purement malveillantes, car un tel attaquant pourrait sans doute abuser de cette vulnérabilité avec un impact beaucoup plus important.