Ce qui se passe
Okta a analysé un dump d'infostealer de 7 Go, publié sur un canal Telegram le 2 août 2026. Il contient les données de 5 871 machines infectées réparties dans 162 pays, collectées par des voleurs du type Lumma Stealer ou Vidar.
Le décompte, côté authentification :
| Élément | Quantité |
|---|---|
| JWT uniques | 44 791 |
| dont liés à des services d'IA | 555 |
| Structures JWE (JWT chiffrés) | 2 937 |
| JWT/JWE non expirés le jour de la publication | 1 843 |
| Clés d'API encore valides | 24 |
| JWT contenant des données personnelles en clair | 17,7 % |
Les services concernés sont ceux du quotidien : Google, Microsoft, Anthropic, Amazon, OpenAI, Gamma, Notion, Character.ai, Cursor, Poe.com, Pika AI. Les 24 clés d'API, trouvées en passant le dump à TruffleHog, ouvrent sur Google Gemini, OpenAI, Groq et OpenRouter.
Pourquoi ça compte
Le mécanisme n'a rien d'exotique, et c'est précisément le problème. Le voleur ne cherche pas votre mot de passe : il ramasse le jeton de session que votre navigateur a obtenu après la connexion — donc après la double authentification. Rejoué depuis une autre machine, ce jeton ouvre la session sans repasser par le moindre facteur.
« Une fois rejoué avec succès, un attaquant est de fait connecté à un service LLM sans s'être connecté. » — Jeremy Kirk, directeur du renseignement sur les menaces chez Okta
Les JWE, eux, sont majoritairement posés par OpenAI, qui utilise NextAuth.js. Ils sont chiffrés, donc illisibles pour l'attaquant — mais un jeton n'a pas besoin d'être lu pour être rejoué.
Deux conséquences se cumulent. La première est financière : détourner une clé d'API pour consommer l'abonnement d'autrui a un nom, le LLMjacking, et un marché — un vendeur repéré par Okta propose l'accès à Claude, Cursor, ChatGPT et Gemini au rabais, support 24/7 et garantie de remboursement compris. La seconde est humaine : les 17,7 % de jetons porteurs de nom, téléphone ou e-mail en clair ne périment jamais, et lient une personne à un service — matière première d'un hameçonnage crédible.
Côté outillage, les navigateurs anti-detect comme Camoufox, ou
SeleniumBase, chargent directement le sessionStorage et le localStorage
volés depuis un fichier, et permettent de configurer un proxy pour déjouer les
détections de « voyage impossible ».
Ce qu'il faut faire
Trois gestes, dans l'ordre de rentabilité :
- Faire tourner les clés d'API stockées dans vos fichiers
.env, vos secrets de CI et vos images. Une clé exposée reste valide jusqu'à révocation — la durée de vie ne joue pas pour vous. - Révoquer les sessions actives sur les comptes IA, depuis les réglages de sécurité de chaque fournisseur, plutôt que de se contenter d'un changement de mot de passe qui ne les invalide pas toujours.
- Réduire la portée : clés limitées à un projet, OAuth 2.0 avec jetons de courte durée, allowlist d'IP quand le fournisseur la propose.
Chrome supporte par ailleurs les Device Bound Session Credentials (DBSC), qui lient cryptographiquement un jeton de session à l'appareil : un jeton volé devient inutilisable ailleurs.
À retenir
Tout ceci suppose une machine déjà infectée — mais un poste de développeur, avec ses fichiers d'environnement et ses sessions ouvertes en permanence, est exactement la cible visée. Les passkeys ont rendu la prise de compte par mot de passe difficile ; elles ne protègent pas ce qui a déjà été émis.
Source : Infostealer Logs Expose Replayable AI Tokens That Can Bypass MFA