L'extension Twitch Enhanced Viewer, diffusée sur le Chrome Web Store et sur Firefox Add-ons, était un outil d'automatisation du chat et des bots de visionnage sur Twitch. Elle transmettait en réalité les jetons de connexion de plus de 30 000 comptes à un service de bot russe basé à Chypre.

Ce type de jeton est délivré par Twitch à chaque application ou extension autorisée par l'utilisateur lors de l'installation via un écran de consentement qui détaille les permissions demandées - ©Bangla press / Shutterstock
Ce type de jeton est délivré par Twitch à chaque application ou extension autorisée par l'utilisateur lors de l'installation via un écran de consentement qui détaille les permissions demandées - ©Bangla press / Shutterstock

Une fois installée, l'extension captait le jeton OAuth de la session Twitch de l'utilisateur, l'identifiant qui remplace le mot de passe pour autoriser un accès au compte. Ce jeton permet de lire et d'envoyer des messages privés, de publier dans le chat et de dépenser des points de chaîne, sans mot de passe ni double authentification.

Sa page sur le Chrome Web Store affichait environ 30 000 installations avant que le spécialiste en cybersécurité Socket ne documente la fuite ; celle de Firefox Add-ons, plusieurs centaines de plus.

Ce type de jeton est délivré par Twitch à chaque application ou extension autorisée par l'utilisateur lors de l'installation via un écran de consentement qui détaille les permissions demandées.

Le jeton glissé dans l'adresse d'un proxy

Le code de l'extension récupérait l'en-tête Authorization, attaché par Twitch à chaque requête, puis transmettait cette valeur, avec l'identifiant de l'appareil, à son module d'arrière-plan. Depuis la version 85, publiée entre avril et mai 2026, les requêtes de lecture vidéo passaient par des serveurs proxy exploités par l'opérateur du service, avec le jeton inséré dans l'adresse sous forme de paramètre auth, et les journaux de ces serveurs conservaient l'identifiant en clair, à l'exception d'une dizaine de chaînes russes présélectionnées. Les redirections empruntaient le domaine enhanced.jeetbot.cc et trois adresses IP, l'une hébergée en Allemagne et les deux autres chez un second prestataire d'informatique en nuage.

Début septembre, Kush Pandya, chercheur en sécurité chez Socket, a retrouvé ce mécanisme en analysant le code de l'extension. Selon lui, ce jeton transitait en clair, sous la forme d'un paramètre auth, à chaque redirection vers les serveurs proxy. Une version antérieure, active en janvier 2026 sous le numéro 4.8, envoyait le jeton de façon plus directe, par une requête POST vers un point d'entrée dédié à son enregistrement. Trois semaines plus tôt, Socket avait averti l'équipe de sécurité de Mozilla, à la mi-août, de la présence de 77 extensions malveillantes sur le module Firefox Add-ons, la plupart conçues pour siphonner des portefeuilles de cryptomonnaies plutôt que des comptes de streaming. Sur ces 77 extensions, sept embarquaient du code injecté à distance, inactif au moment de l'examen par Mozilla et activé seulement après la publication.

Le cycle de vie d'une attaque de l'extension JeetBot, depuis son inscription sur la place de marché jusqu'à ce que le jeton OAuth Twitch en direct atteigne les proxys de l'opérateur. - ©Socket
Le cycle de vie d'une attaque de l'extension JeetBot, depuis son inscription sur la place de marché jusqu'à ce que le jeton OAuth Twitch en direct atteigne les proxys de l'opérateur. - ©Socket

Un correctif pour une poignée d'utilisateurs, la suppression pour les autres

Cette extension était hébergée sur le Chrome Web Store depuis le 26 juin 2025, sur Firefox Add-ons depuis le 7 juillet. En plus d'un an, ce mécanisme d'exfiltration n'a été signalé dans aucun des deux magasins avant l'alerte de Socket, en septembre 2026. Le nom d'Aleksandr Popov figure dans les mentions légales du site jeetbot.cc, avec l'adresse de contact support@jeetbot.cc.

Sur Twitch, Kick et VK Live, JeetBot propose l'automatisation de fonctions de chat et de bots de visionnage. Le 11 septembre, ce développeur basé à Chypre a publié la version 85.8.7 de l'extension pour Firefox, qui n'achemine plus les requêtes par les serveurs proxy. Au moment de cette publication, la version Chrome était toujours en cours d'examen chez Google, si bien que l'essentiel des quelque 31 000 comptes concernés n'avait accès à aucun correctif.

Même après la désinstallation de l'extension, un jeton de ce type est valide tant que la session associée n'est pas révoquée. Les utilisateurs concernés peuvent donc supprimer l'extension de leur navigateur, puis déconnecter, depuis les paramètres de sécurité de leur compte Twitch, l'ensemble de leurs sessions actives.

À découvrir
Meilleur Antivirus : Le Comparatif en 2026
Comparatifs services
Foire aux questionsContenu généré par l’IA
À quoi sert un jeton OAuth Twitch, et pourquoi sa fuite suffit-elle à prendre la main sur un compte ?

Un jeton OAuth est une “clé” générée par Twitch pour autoriser une application ou une extension à agir au nom d’un utilisateur, sans connaître son mot de passe. Il est généralement rattaché à des permissions précises (lire/écrire dans le chat, accéder à certaines données, etc.) acceptées lors d’un écran de consentement. Si ce jeton est dérobé, un tiers peut l’utiliser pour appeler les API Twitch et réaliser les actions autorisées comme si l’utilisateur était connecté. La double authentification ne bloque pas ces appels, car elle protège surtout l’étape de connexion initiale, pas l’usage d’un jeton déjà émis. Tant que le jeton n’est pas révoqué ou expiré, il reste exploitable.

Pourquoi mettre un jeton d’accès dans une URL (paramètre “auth”) via un proxy est-il une mauvaise pratique de sécurité ?

Placer un secret dans une URL est risqué, car les URLs finissent souvent dans des journaux (logs) côté serveur, des outils de monitoring, ou des historiques techniques. Un proxy ajoute un intermédiaire : même si le trafic est chiffré entre le navigateur et le proxy, l’opérateur du proxy peut voir et enregistrer la requête complète, y compris le paramètre “auth”. En cas de fuite de logs, de mauvaise configuration ou d’accès interne mal maîtrisé, le jeton peut être récupéré et réutilisé. En sécurité, les jetons se transmettent plutôt via des en-têtes HTTP (ex. Authorization) ou des corps de requêtes, et doivent être protégés par des politiques strictes de journalisation et de rotation.

Qu’est-ce qu’une extension avec “code injecté à distance”, et pourquoi cela complique la modération sur Chrome Web Store et Firefox Add-ons ?

Le “code injecté à distance” désigne une extension qui télécharge ou active du code depuis un serveur après l’installation, au lieu de tout embarquer dans le paquet examiné par la boutique. Cela peut permettre d’afficher un comportement inoffensif pendant la revue, puis d’activer des fonctions sensibles plus tard, sur commande. Pour les équipes de validation, c’est plus difficile à détecter car l’analyse porte d’abord sur le code fourni au moment de la soumission. Même quand ces pratiques sont encadrées par des règles, elles ouvrent une surface d’attaque : un serveur compromis ou un opérateur malveillant peut modifier le comportement de l’extension sans nouvelle publication. La défense passe par des politiques strictes (limiter le chargement de code distant), des audits et une surveillance comportementale après publication.