Doplněk pro Twitch posílal přihlašovací tokeny diváků na servery provozovatele bota
Doplněk Twitch Enhanced Viewer přeposílal přihlašovací token diváka na proxy servery služby JeetBot, a to u každého přenosu mimo krátký seznam výjimek. Takový token stačí k tomu, aby se s účtem dalo nakládat bez hesla i bez druhého faktoru. Verze pro Firefox z katalogu Mozilly zmizela, v Chromu přibylo 20. září vydání 85.8.7 – tedy to číslo, u kterého byla oprava ověřena ve Firefoxu.

Reklama před přenosem, zamčená kvalita obrazu a stream, který se v některých zemích vůbec nespustí. Na to všechno existují doplňky do prohlížeče a jeden z nich se jmenuje Twitch Enhanced Viewer | JeetBot. V Chromu ho má nainstalovaných 30 000 lidí a vedle slíbených funkcí odesílal ven i přihlašovací token svého uživatele.
Popsal to 11. září rozbor bezpečnostní firmy Socket, pod kterým je podepsaný výzkumník Kush Pandya. V době rozboru byl doplněk ve dvou obchodech naráz: v Chrome Web Store pod identifikátorem pnhhdhhcadcjfckjhpmjneldiegbojfb, v katalogu Mozilly pod twitchenhancedviewer@example.com. Socket napočítal dohromady zhruba 31 000 uživatelů, z toho 552 ve Firefoxu; The Hacker News uvedl o tři dny později u Firefoxu 604. Třicet tisíc u Chromu je zaokrouhlení samotného obchodu, přesnější číslo Google nezveřejňuje.
Token jel v adrese přesměrovaného požadavku
Aby doplněk obešel reklamu a odemkl vyšší kvalitu, přesměrovává požadavky na seznam videosegmentů (adresa usher.ttvnw.net) přes proxy servery provozovatele. Výchozí je enhanced.jeetbot.cc. Na tu adresu se ale vezl i token, a to jako parametr auth přímo v adrese. Socket k tomu dodává, že se token tím pádem zapisuje v čitelné podobě do protokolů proxy serveru.
Že jde o token k účtu, a ne o krátkodobý klíč k přehrávání, doložil Socket z kódu doplňku. Obsahový skript vyčte hlavičku Authorization, kterou používá sám web Twitche, a doplněk ji pak posílá na ověřovací adresu Twitche ve tvaru Authorization: OAuth a hodnota tokenu. Klíč k přehrávání přitom doplněk řeší zvlášť, takže účtový token k načtení videa vůbec nepotřeboval.
Starší vydání s ním nakládala ještě otevřeněji. Verze 4.8 z 8. ledna 2026 posílala token metodou POST na koncový bod set-token, se dvěma náhradními adresami na doménách deno.dev a deno.net. V kódu u toho stály ruské poznámky, že se neúspěšné odeslání má tiše přejít, a pětivteřinová prodleva, aby se token neposílal příliš často. Socket z prodlevy vyvozuje, že si příjemce tokeny ukládal; sama o sobě to ale nedokazuje.
Token nahradí heslo i druhý faktor
Přihlašovací token je doklad na doručitele: komu se dostane do ruky, tomu Twitch věří. Heslo k tomu nepotřebuje a dvoufázové přihlášení ho nezastaví. S účtem pak jde psát do chatu, číst a odesílat soukromé zprávy a utrácet kanálové body.
Důležité je i to, co oprava nespraví. Aktualizace ani smazání doplňku už odeslané tokeny nezneplatní. Socket proto radí odpojit v nastavení Twitche všechny relace a přihlásit se znovu; teprve tím staré tokeny přestanou platit.
Deset kanálů mělo výjimku
V kódu stojí seznam deseti kanálů, u kterých se token do adresy nepřidává. Jsou to rusky mluvící streameři, několik z nich známé tváře okolo Counter-Striku. U všech ostatních kanálů se token odesílal.
Vývojář Aleksandr Popov, kterého web JeetBotu uvádí v patičce a The Hacker News ho označuje za vývojáře sídlícího na Kypru, to vysvětlil jinak, než jak seznam vypadá. Diváci mimo Rusko a lidé připojení přes VPN podle něj u těch kanálů naráželi na chybu číslo 3 a přehrávač jim odmítl pustit obraz. Pro ně vznikla náhradní cesta, která token neposílá, a těch deset kanálů byly jen její výchozí položky; od verze 85.8.4 si seznam může upravit každý sám. Popov zároveň odmítá, že by šlo o škodlivý doplněk, a tvrdí, že s odeslanými tokeny nikdo na účtech nic nedělal. Přeposílání tokenu označil za nedomyšlenost, kterou převzal na svůj vrub spolu s tím, že popis doplňku ani zásady soukromí nedržely krok s kódem.
Podobně to podle něj řeší i konkurenční doplňky ReYohoho Twitch Proxy a XT Viewer. Ty to ale mají napsané ve svém popisu v obchodě.
Co je v obchodech vidět teď
Firefoxová verze byla podle Socketu spravená jako první: vydání 85.8.7 token na proxy už neposílá. Chrome v době jeho zápisu ze 16. září běžel dál na verzi 85.8.4, která token posílala.
Vlastní kontrola obou obchodů 21. září ukázala další posun. Stránka doplňku v Chrome Web Store nese verzi 85.8.7 s datem 20. září, průměrné hodnocení 3,9 z 80 hlasů a pořád 30 000 uživatelů. V popisu doplňku dnes stojí rusky psané upozornění, že předchozí verze posílají token na servery provozovatele a že je to nutné pro obraz v kvalitě 1080p a 1440p; Socket přitom 11. září psal, že ani jeden z obchodů o tom neinformuje. Změnilo se i hlášení o datech: obchod teď u doplňku vypisuje přihlašovací údaje, aktivitu uživatele a obsah stránek, kdežto v době rozboru tam podle Socketu stálo, že vývojář data nesbírá. Jestli i chromové vydání token přestalo odesílat, jsme neověřovali; Socket potvrdil opravu u Firefoxu.
Ve Firefoxu je to opačně. Stránka doplňku v katalogu Mozilly vrací 404 a hledání v katalogu ho nenajde vůbec; Mozilla důvod nikde neuvádí a otázku po něm jsme jí nepoložili. Zásady ochrany soukromí, na které odkazuje záznam v Chromu, zůstávají beze změny. Mají pořád datum 25. června 2025, pořád tvrdí, že doplněk nesbírá, neukládá ani nezpracovává žádná uživatelská data, a pořád v nich u kontaktu svítí nevyplněná poznámka pro vývojáře, aby si tam doplnil svoje údaje.
Praktický závěr je jednoduchý a netýká se jen tohohle doplňku: na rozšíření, které kvůli své funkci vede provoz přihlášené služby přes cizí server, je bezpečnější hledět tak, že se k přihlášení do té služby dostane. Doporučuje to i Socket.
Zdroje
- Socket: Twitch Browser Extension Exposes 30,000 Users' OAuth Tokens to Russian Bot Service (11. 9. 2026, dopsáno 16. 9. 2026)
- The Hacker News: Twitch Browser Extension Leaks OAuth Tokens From Nearly 31,000 Users (14. 9. 2026, dopsáno 17. 9. 2026)
- Záznam doplňku v Chrome Web Store
- Zásady ochrany soukromí doplňku