Source : Socket (blog de recherche sécurité), 6 février 2026. Le Threat Research Team de Socket décrit une compromission de mainteneur ayant permis la publication de versions malveillantes des clients dYdX v4 sur npm et PyPI, détectées le 27 janvier 2026 et signalées à dYdX le 28 janvier (reconnaissance publique le même jour).

• Écosystèmes touchés et vecteurs: des versions spécifiques des paquets dYdX ont été modifiées pour intégrer du code malveillant au cœur des fichiers (registry.ts/js, account.py). Le code exfiltre des seed phrases et des empreintes d’appareil vers un domaine typosquatté (dydx[.]priceoracle[.]site), imitant le service légitime dydx[.]xyz. Le mode opératoire et la connaissance interne du projet suggèrent une compromission de compte développeur.

• Détails npm (JS) 🚨: la fonction createRegistry() envoie la seed phrase et une empreinte machine (MAC, hostname, OS, arch, /etc/machine-id, variables d’environnement) vers https://dydx[.]priceoracle[.]site/v4/price, avec gestion d’erreurs silencieuse pour masquer l’exfiltration. Objectif principal: vol d’identifiants de portefeuilles et corrélation par device fingerprint.

• Détails PyPI (Python) 🐍: en plus du vol de credentials (list_prices() dans account.py), un RAT chiffré/obfusqué (payload dans GENSIS_BLOCKS, déobfusqué en 100 itérations reverse→base64→zlib via _bootstrap.py) s’exécute à l’import, contacte https://dydx[.]priceoracle[.]site/py toutes les 10 s, reçoit du code Python et l’exécute en sous-processus caché (SSL désactivé, token d’auth durci). Impact: exécution arbitraire, vol de clés/SECRETS, persistance et mouvement latéral potentiels.

• Portée, contexte et chronologie: dYdX est une DEX majeure (volumes et adoption élevés) et ses clients sont utilisés par bots, market makers et applis DeFi — rendant la compromission critique (compromission totale de portefeuilles côté npm; compromission système côté PyPI). L’infra malveillante (priceoracle[.]site) a été enregistrée le 9 janv. 2026; le domaine apparaît verrouillé (« server transfer prohibited », « client hold »). L’article rappelle des précédents: compromission npm 09/2022 (exfil d’ENV/AWS/GitHub/SSH) et DNS hijacking du site dYdX v3 en 07/2024.

• Paquets affectés, IOCs et TTPs:

  • Paquets compromis:
    • npm: @dydxprotocol/v4-client-js (3.4.1, 1.22.1, 1.15.2, 1.0.31) ; (liste IOCs: @dydxprotocol/v4-client v1.0.31, v1.15.2, v1.22.1, v3.4.1)
    • PyPI: dydx-v4-client (1.1.5post1)
  • Endpoints malveillants:
    • https://dydx[.]priceoracle[.]site
    • https://dydx[.]priceoracle[.]site/v4/price
    • https://dydx[.]priceoracle[.]site/py
  • Identifiants durs:
    • API key (exfil): dydx1gh6fj28w37rykqu6szgp9q0rzejslmj0umk55c
    • Token RAT: 490CD9DAD3FAE1F59521C27A96B32F5D677DD41BF1F706A0BF85E69CA6EBFE75
  • MITRE ATT&CK: T1195.002, T1059.006, T1071.001, T1027, T1082, T1041, T1005.

Conclusion: publication de recherche technique détaillant une attaque de supply chain multi-écosystème, ses mécanismes, IOCs et TTPs, et son impact sur l’écosystème dYdX.

🧠 TTPs et IOCs détectés

TTP

T1195.002, T1059.006, T1071.001, T1027, T1082, T1041, T1005

IOC

{‘domains’: [‘dydx.priceoracle.site’, ‘dydx.priceoracle.site/v4/price’, ‘dydx.priceoracle.site/py’], ‘hardcoded_identifiers’: [‘dydx1gh6fj28w37rykqu6szgp9q0rzejslmj0umk55c’, ‘490CD9DAD3FAE1F59521C27A96B32F5D677DD41BF1F706A0BF85E69CA6EBFE75’]}


🔗 Source originale : https://socket.dev/blog/malicious-dydx-packages-published-to-npm-and-pypi