Un script lié au système de chat de service client Udesk contenait du code injecté qui collecte des données de connexion et remplace des adresses de dépôt crypto, a indiqué la société de sécurité blockchain SlowMist le mardi 27 octobre dans un rapport de renseignement sur les menaces publié sur Medium à 10 h 06 UTC. SlowMist a analysé deux fichiers, udeskApi.2026-10-16.cached.js et deeps.js. Sur les pages de dépôt de trois sites de type plateforme d’échange, le second fichier remplace à la fois l’adresse affichée à l’utilisateur et celle qu’smart contract holding reserves of two or more tokens, supplied by users, that a decentralized exchange uses to execute trades automatically at a price set by a formula.">pool diverge, compared with simply holding the same tokens in a wallet. It becomes permanent when the provider withdraws.">il copie : coller puis comparer ne permet donc plus de repérer la substitution. Udesk n’a pas réagi.
SlowMist a aussi publié les six adresses de réception inscrites dans le code. Deux d’entre elles ont déjà servi. Les registres publics des blockchains, consultés par Coindaro à 11 h 53 UTC le 27 octobre, montrent que l’adresse TRON a reçu 7 000 USDT le 18 octobre et a été vidée le jour même. Rien dans ces registres n’indique qui a envoyé les fonds ni pourquoi, et SlowMist ne fait état d’aucune perte.
SlowMist a trouvé un chargeur caché à la fin du script Udesk
La plus grande partie de udeskApi.2026-10-16.cached.js est du code de chat ordinaire : le bouton du service client, la fenêtre de discussion, le suivi des visiteurs et la messagerie, selon SlowMist. Une fois le bloc principal terminé, le fichier contient une fonction supplémentaire. Elle décode deux chaînes, construit à partir d’elles un élément script et l’ajoute à l’en-tête de la page.
Les chaînes sont écrites en hexadécimal, deux caractères par lettre, si bien qu’une recherche sur un nom de domaine en clair ne donne rien. Une fois décodée, la première donne « script » et la seconde https[:]//udeskqlobal[.]com/deeps.js. SlowMist fait remarquer que le domaine commence par « udeskq », avec un q là où le lecteur attend un g, et recommande de conserver cette orthographe telle quelle pour chercher dans les journaux. Le fichier distant se charge de façon asynchrone, sans ralentir la page.
La date présente dans le nom du fichier n’est qu’un élément du nom. SlowMist ne dit pas quand le code a été ajouté, comment il s’est retrouvé dans le fichier, ni d’où viennent les échantillons. La fenêtre de chat elle-même s’exécute dans une iframe, mais SlowMist précise que cela ne protège en rien ici : un script chargé dans la page hôte s’exécute avec les droits de cette page, quoi que fasse la fenêtre de chat.

Deeps.js collecte les données de session sur chaque page où il passe
La charge utile commence par lire le nom d’hôte du site et le confronte à des règles visant trois sites. SlowMist a suivi l’endroit où le script s’arrête pour tout autre site, et constaté que le code de collecte s’exécute avant cette vérification. Le vol de données de session ne se limite donc pas aux trois cibles. Seule la partie qui remplace les adresses l’est.
Au démarrage, deeps.js lit les cookies visibles par la page, ainsi que tout le contenu de localStorage et de sessionStorage, là où de nombreux sites conservent des jetons de connexion et des données de profil. Les cookies marqués HttpOnly lui échappent, indique SlowMist. Le script ajoute l’adresse et l’origine de la page, puis envoie le tout à udeskqlobal[.]com/c.php.
Il reste ensuite en attente. Quand un formulaire est soumis, il copie chaque champ non vide, ce qui peut inclure identifiants, mots de passe et codes à usage unique, puis laisse l’envoi se dérouler normalement. Il enveloppe aussi les fonctions fetch et XMLHttpRequest du navigateur et copie le corps de toute requête dont l’adresse contient des mots comme login, signin, auth, register, signup ou password.
Un jeton de session valide peut permettre d’agir à la place de l’utilisateur sans mot de passe, ce qui explique l’avertissement de SlowMist sur l’usurpation de session et la prise de contrôle de compte. Si l’envoi vers c.php échoue, le script réessaie par une requête d’image, tronquée à 8 000 caractères. SlowMist ajoute un détail pour ceux qui lisent les journaux du navigateur : une erreur CORS dans la console ne signifie pas que les données sont restées en place, car la requête peut partir avant que le navigateur ne bloque la réponse.
Sur trois pages de dépôt, les adresses sont réécrites toutes les 200 millisecondes
Les trois règles correspondent à mgbx[.]com et bitxex[.]io. SlowMist écrit le troisième site « bikingex[.] », sans terminaison, aussi bien dans les règles que dans son propre texte : son nom de domaine complet n’est donc pas public. Selon SlowMist, les règles n’ont ni ancre de début ni ancre de fin, elles peuvent donc correspondre à d’autres noms d’hôte que ces trois noms exacts. Elles recherchent aussi des mots comme deposit, recharge et assets n’importe où dans l’adresse de la page.
Lorsque la page et le format d’adresse correspondent, le script balaye la page cinq fois par seconde et remplace toute adresse de dépôt qu’il reconnaît par l’une de six valeurs fixées dans le code, étiquetées BTC, EVM, TRON, Solana, LTC et DOGE. Il se fie uniquement à l’aspect des caractères. Il ne vérifie ni le réseau choisi par l’utilisateur ni la somme de contrôle de l’adresse, et peut aussi réécrire des numéros de commande ordinaires qui ressemblent à des adresses.
L’étape de copie est piégée de trois façons distinctes. La fonction de presse-papiers du navigateur est enveloppée, de sorte que tout ce qu’un site y écrit passe d’abord par la routine de remplacement, sur n’importe quelle page d’un hôte concerné. Les boutons de copie de la page sont clonés et remplacés par des boutons qui copient la dernière adresse remplacée par le script. Enfin, un écouteur d’événement de copie sur les pages de dépôt place cette même adresse dans le presse-papiers, quel que soit le texte que l’utilisateur avait sélectionné.
SlowMist a aussi relevé un bogue : un appel cherche une propriété de texte au mauvais endroit et déclenche une erreur que le script avale en silence. Cela n’empêche pas la substitution, puisque le minuteur de balayage et les crochets du presse-papiers sont déjà en place à ce stade.
Aucune source ne dit si les trois sites ont servi le script à leurs utilisateurs, pendant combien de temps, ni si leurs exploitants sont au courant. Aucun d’eux n’a réagi dans la couverture que Coindaro a trouvée.
Ce que montrent les registres publics sur les adresses de l’attaquant
SlowMist liste les six adresses comme indicateurs de compromission. Coindaro les a consultées sur des explorateurs publics à 11 h 53 UTC le 27 octobre.
| Réseau | Adresse figurant dans la liste de SlowMist | Activité constatée |
|---|---|---|
| TRON | TH4L5YAhhxtC8qALbZKbPZZgausbGi25nF | 7 000 USDT reçus à 04 h 46 UTC le 18 octobre ; la totalité renvoyée avant 18 h 58 UTC ; solde USDT désormais nul |
| EVM (vérifiée sur Ethereum) | 0x9B6EcD0023a28E1391c5124eCe578A9751A337b2 | Environ 2,81 ETH reçus entre 19 h 00 et 19 h 03 UTC le 18 octobre, 2,806 ETH envoyés vers un routeur MAYAChain avant 19 h 10 UTC |
| Bitcoin | bc1qhzppfj69ywp22swj50jwcfxdamg3ym245srng9 | Aucune transaction |
| Solana | AFmCUe3nNbjTaC585CcdA3vvC9iWVR8YunooFKpaQx2Z | Aucune transaction |
| Litecoin | ltc1qwz0zp39ywl34kahvn9lyk7j5x63wsy9tcxhm3w | Aucune transaction |
| Dogecoin | DAoy2w8uvFtZ92q87s9qKEoHbWgV7mVThj | Aucune transaction |
Les deux adresses utilisées ont été actives le même soir, deux jours après la date figurant dans le nom du fichier. Le paiement le plus important en ETH est passé par le contrat d’échange SwftSwap. Ces registres montrent des fonds en mouvement, pas à qui ils appartenaient : les 7 000 USDT peuvent provenir d’une victime, d’un test de l’attaquant ou d’autre chose. Les adresses EVM fonctionnent sur de nombreuses chaînes, et seule Ethereum a été vérifiée.
Pourquoi comparer l’adresse collée ne protège pas contre une page piégée
La substitution d’adresses n’est pas nouvelle. Les logiciels malveillants de presse-papiers, souvent appelés « clippers », tournent sur un ordinateur infecté et remplacent toute adresse crypto copiée par l’utilisateur. L’empoisonnement d’adresses, présenté dans notre guide sur les faux airdrops et les adresses empoisonnées, glisse des adresses sosies dans l’historique d’un portefeuille. Contre les deux, le conseil habituel est de comparer l’adresse collée à celle qu’affiche la plateforme.
Ce conseil suppose que la page de la plateforme est honnête. Ici, le code s’exécute à l’intérieur de la page : il écrit à la fois ce que la page affiche et ce que produit le bouton de copie. Selon SlowMist, un utilisateur qui compare les deux peut voir la même valeur modifiée. Une vérification utile exige une source que le script ne peut pas toucher, comme l’application mobile de la plateforme ou un second appareil. Notre explication sur le fonctionnement des formats d’adresse et des réseaux crypto détaille ce qu’il faut comparer.
L’affaire tient au code tiers. Les sites web chargent des scripts prêts à l’emploi pour le chat, l’analyse d’audience ou les paiements, et le navigateur leur accorde les mêmes droits qu’au code du site. Si le fichier change, chaque page qui le charge exécute la nouvelle version. SlowMist demande aux exploitants d’inspecter leurs réglages d’hébergement, de réseau de diffusion, de compilation et de gestion de balises, mais ne dit pas lequel a servi de point d’entrée ici, ni combien de clients d’Udesk ont reçu le fichier modifié.
Que vérifier si vous avez utilisé l’une de ces pages de dépôt
Les conseils de SlowMist s’adressent aux exploitants de sites. Pour les utilisateurs, ils se résument à ces étapes :
- Relisez l’adresse de dépôt dans l’application mobile de la plateforme ou sur un second appareil, en plus de la page web.
- Envoyez d’abord un petit montant de test et attendez que la plateforme le crédite avant d’envoyer le reste.
- Si vous vous êtes connecté à mgbx[.]com, à bitxex[.]io ou à un autre site qui intègre le widget de chat Udesk, fermez toutes les sessions, puis changez votre mot de passe et vos réglages d’authentification à deux facteurs depuis un appareil sain.
- Révoquez les clés API et les sessions ouvertes sur ces comptes, et parcourez l’historique des transactions à la recherche de transferts que vous n’avez pas effectués.
Un portefeuille matériel ajoute une vérification que la page ne peut pas falsifier, puisque son propre écran affiche l’adresse que vous vous apprêtez à signer. Cela n’aide que si vous la comparez à une adresse issue d’un canal de confiance. Notre guide pas à pas pour configurer un portefeuille matériel explique comment lire cet écran. Ce point est de Coindaro, pas de SlowMist.

Pour les sites qui intègrent Udesk
SlowMist demande aux exploitants qui chargent encore les fichiers concernés de conserver une copie de ce qui a réellement été servi, avec les chaînes de requêtes, les données de cache et les horodatages, avant de les bloquer. La société suggère de chercher dans les journaux le domaine, les deux chemins et les empreintes des fichiers, ainsi que la chaîne hexadécimale en plus de l’adresse en clair. Elle indique les empreintes SHA-256 commençant par 45b4e8f1 pour udeskApi.2026-10-16.cached.js et par 57c1441c pour deeps.js.
Retirer la balise script ne suffit pas, prévient SlowMist : les crochets et minuteurs déjà installés continuent de tourner jusqu’à la fermeture complète de la page. Il faut révoquer les sessions, renouveler jetons et mots de passe depuis un environnement sain et recouper les adresses de dépôt avec les enregistrements du back-end. SlowMist recommande aussi des contrôles sur l’origine et l’intégrité des scripts et des règles de sortie, notamment connect-src et img-src, qui bloquent udeskqlobal[.]com. Les indicateurs ont été ajoutés à son moteur de détection MistEye.
Udesk n’a pas réagi et les principales questions restent ouvertes
Udesk n’a publié aucune déclaration, et aucune n’apparaît dans la couverture en anglais et en chinois. TechFlow et ChainCatcher ont relayé les conclusions de SlowMist le 27 octobre sans y ajouter d’analyse propre. On ignore encore comment le fichier a été modifié, si Udesk l’a servi à tous ses clients, pendant combien de temps il est resté en ligne et quel est le nom complet du troisième site.
En France, l’Autorité des marchés financiers (AMF) tient une liste noire des plateformes crypto non autorisées, et les lecteurs français comme italiens qui utilisent de petites plateformes peuvent les y vérifier, ainsi que sur la liste d’alerte de la Consob, avant de déposer des fonds. Une plateforme absente du registre des prestataires de services sur actifs numériques (PSAN) n’offre pas la protection que ce statut apporte. Notre guide pour éviter les arnaques crypto indique où signaler une plateforme suspecte. Les prochains éléments à suivre sont une déclaration d’Udesk et toute mise à jour de SlowMist sur la manière dont le fichier a été modifié.
