Ce qui se passe
Le chercheur Kush Pandya, de Socket, a analysé « Twitch Enhanced Viewer | JeetBot », une extension de navigateur présente sur les deux magasins :
| Magasin | Identifiant | Utilisateurs | Publiée le |
|---|---|---|---|
| Chrome Web Store | pnhhdhhcadcjfckjhpmjneldiegbojfb |
30 000 | 26 juin 2025 |
| Firefox Add-ons | twitchenhancedviewer@example.com |
604 | 7 juillet 2025 |
L'extension promet une lecture sans publicité et du 1080p « pour les régions
soumises à des contraintes ». Elle y parvient en faisant transiter les requêtes
de playlist vidéo vers usher.ttvnw[.]net par des proxys contrôlés par
l'éditeur — en y accrochant le jeton OAuth Twitch de l'utilisateur, dans un
paramètre &auth= de l'URL.
Le détail qui transforme une fonctionnalité en fuite
Un jeton placé dans une chaîne de requête est écrit en clair dans les journaux d'accès du serveur qui reçoit la requête. Ici, l'opérateur est un service commercial de bots pour Twitch, Kick et VK Live, qui relaie donc des sessions authentifiées vivantes à travers sa propre infrastructure.
Ce que ce jeton ouvre : le chat, les whispers (messages privés) et les paramètres du compte.
Les versions antérieures allaient plus loin encore : les builds v4.x — par
exemple la 4.8 de janvier 2026 — envoyaient le jeton par POST vers un point
d'entrée set-token dédié, avec des relais sur deno.dev et deno.net.
Socket relève aussi que dix chaînes russophones codées en dur échappaient à la
redirection. L'éditeur, Aleksandr Popov, explique qu'il s'agissait d'un
contournement de lecture pour l'erreur #3 de Twitch (« proxy ou débloqueur
détecté »), et que la liste est devenue modifiable par l'utilisateur depuis la
version 85.8.4.
Ce qu'il faut faire, et dans cet ordre
L'éditeur a publié un correctif — version 85.8.7 — qui cesse d'envoyer le jeton aux proxys. Il est disponible côté Firefox ; la version Chrome attend encore la validation du magasin. Mais sa propre documentation est explicite sur le point essentiel :
Désactiver ou mettre à jour l'extension ne révoque pas les jetons déjà transmis.
- Mettre à jour en 85.8.7 ou plus récent, ou désactiver l'extension en attendant qu'elle soit disponible ;
- surtout, aller dans les paramètres Twitch, section sécurité et confidentialité, et déconnecter tous les appareils — c'est la seule action qui invalide un jeton déjà parti.
À retenir
Pour qui publie une extension, la leçon tient en une règle : un identifiant ne voyage jamais dans une URL. Ni en paramètre, ni « juste pour un proxy », ni « temporairement ». Une redirection réseau est un point de journalisation, et un jeton journalisé est un jeton compromis, même sans intention malveillante de celui qui le reçoit.
Popov conteste d'ailleurs le qualificatif de malveillant et affirme que la description et la politique de confidentialité n'avaient pas suivi l'implémentation. Du point de vue de l'utilisateur, la distinction ne change rien : le jeton est parti.