Une vulnérabilité a été découverte dans le langage de programmation Squirrel, utilisé notamment pour réaliser des mods et des maps dans certains jeux vidéo.
Si elle est exploitée par un attaquant, elle lui permettrait de prendre le contrôle de l'appareil de sa victime en créant un mod malveillant.
Une vulnérabilité permettant de prendre le contrôle d'une machine
Squirrel est un langage de programmation utilisé dans les VScripts. Ces derniers sont utilisés par les moddeurs dans la création de maps et de modes de jeu, notamment pour les titres de Valve qui utilisent le moteur de jeu Source. Ce langage, apprécié pour sa légèreté, est également utilisé pour des appareils connectés. Mais début août, les chercheurs de SonarSource y ont trouvé une vulnérabilité critique.
Pour la majorité des jeux utilisant Source, il est possible de télécharger de nouveaux modes de jeu ou des cartes sur le Steam Workshop. Lorsque l'on accède au contenu téléchargé en jeu, du code écrit en Squirrel est exécuté. Pour éviter que les machines des joueurs soient en danger, tout est exécuté dans une sandbox, c'est-à-dire un environnement isolé de la machine du joueur, afin de protéger son système d'exploitation. Mais les chercheurs ont découvert une vulnérabilité de type Out-Of-Bounds Read, permettant au script de « s'échapper » de la machine virtuelle et de s'exécuter directement sur l'ordinateur ou le serveur des utilisateurs.
Une vulnérabilité corrigée mi-septembre
Les chercheurs donnent comme exemple le cas d'une map communautaire contenant du code malveillant partagée sur le Steam Workshop. Celle-ci est téléchargée par un utilisateur, qui l'installe sur son serveur. Mais une fois le script Squirrel exécuté, et grâce à la vulnérabilité, il peut sortir des limites imposées par la sandbox et prendre le contrôle du serveur directement. La vulnérabilité est d'autant plus critique si elle est utilisée avec une autre, comme celle découverte dans CS: GO en janvier et corrigée depuis, qui permet à des attaquants d'exécuter du code à distance sur les machines de joueurs se connectant à un serveur malveillant.
Les chercheurs ont prévenu la personne en charge du projet le 10 août et un commit corrigeant la vulnérabilité a été poussé sur le répertoire GitHub du projet le 16 septembre. Cependant, les créateurs de projets utilisant Squirrel devront appliquer le correctif manuellement, le commit n'ayant pas été ajouté à une nouvelle version stable.
Sources : SonarSource, Secret club