Attaque de la chaîne d'approvisionnement ciblant le package Python 'Lightning' pour le vol d'identifiants
Une nouvelle attaque de la chaîne d'approvisionnement logicielle a été découverte, ciblant le package Python populaire, **Lightning**. Les acteurs malveillants ont compromis le package pour distribuer des versions malveillantes visant à voler des identifiants, marquant ainsi une extension de la campagne **Mini Shai-Hulud**.

Dans une nouvelle attaque de la chaîne d'approvisionnement logicielle, des acteurs malveillants sont parvenus à compromettre le package Python populaire **Lightning** pour y pousser deux versions malveillantes afin de voler des identifiants.
Selon **Aikido Security**, **OX Security**, **Socket** et **StepSecurity**, les deux versions malveillantes sont les versions 2.6.2 et 2.6.3, toutes deux publiées le 30 avril 2026. La campagne est considérée comme une extension de l'incident de la chaîne d'approvisionnement **Mini Shai-Hulud** qui a ciblé des packages npm liés à **SAP** mercredi.
Au moment de la rédaction, le projet a été mis en quarantaine par les administrateurs du dépôt Python Package Index (**PyPI**). **PyTorch Lightning** est un framework Python open-source qui fournit une interface de haut niveau pour PyTorch. Le projet open-source compte plus de 31 100 étoiles sur **GitHub**.
"Le package malveillant comprend un répertoire _runtime caché contenant un téléchargeur et une charge utile JavaScript obfusquée," a déclaré Socket. "La chaîne d'exécution s'exécute automatiquement lorsque le module lightning est importé, ne nécessitant aucune action supplémentaire de l'utilisateur après l'installation et l'importation."
La chaîne d'attaque ouvre la voie à un script Python ("start.py"), qui télécharge et exécute l'environnement d'exécution JavaScript **Bun**, puis l'utilise pour exécuter une charge utile malveillante obfusquée de 11 Mo ("router_runtime.js") dans le but de procéder à un vol complet d'identifiants.
Parmi les identifiants collectés, les jetons GitHub sont validés par rapport au point de terminaison "api.github[.]com/user" avant d'être utilisés pour injecter une charge utile de type ver dans jusqu'à 50 branches récupérées dans chaque dépôt auquel le jeton peut écrire.

"L'opération est un upsert : elle crée des fichiers qui n'existent pas encore et écrase silencieusement ceux qui existent," a ajouté Socket. "Aucune vérification préalable du contenu existant n'est effectuée. Chaque commit empoisonné est signé à l'aide d'une identité codée en dur conçue pour usurper l'identité de **Anthropic's Claude Code**."
Séparément, le malware implémente un vecteur de propagation basé sur npm qui modifie les packages npm locaux du développeur avec un hook postinstall dans le fichier "package.json" pour invoquer la charge utile malveillante, augmente le numéro de version patch, et reconditionne les fichiers .tgz. Si le développeur inconscient publie les packages falsifiés depuis son environnement local, ils sont mis à disposition sur npm, d'où le malware finit par se retrouver sur les systèmes des utilisateurs en aval.

Les mainteneurs du projet ont reconnu qu'"ils sont conscients du problème et enquêtent activement". Il n'est actuellement pas clair comment l'incident s'est produit, mais les indices suggèrent que le compte GitHub du projet a été compromis.
Dans un avis séparé, Lightning a révélé qu'une enquête est toujours en cours pour déterminer la cause racine exacte de la compromission et que "les versions affectées ont introduit des fonctionnalités cohérentes avec un mécanisme de collecte d'identifiants".
En attendant, il est conseillé de bloquer les versions 2.6.2 et 2.6.3 de Lightning et de les supprimer des systèmes des développeurs, si elles sont déjà installées. Il est également essentiel de rétrograder vers la dernière version propre connue, 2.6.1, et de faire pivoter les identifiants exposés dans les environnements affectés.
L'attaque de la chaîne d'approvisionnement est le dernier ajout à une longue liste de compromissions effectuées par un acteur malveillant connu sous le nom de **TeamPCP**, qui a maintenant lancé un site onion sur le dark web après la suspension de son compte sur **X** pour violation des règles de la plateforme.
Il a également appelé **LAPSUS$**, un "bon partenaire de nous et a été fortement impliqué tout au long de cette opération". Le groupe a également tenu à souligner qu'il "n'a jamais utilisé d'outils de chiffrement VECT et que nous possédons CipherForce, notre propre casier privé", suite à un rapport de **Check Point Research** sur des vulnérabilités découvertes dans le processus de chiffrement du ransomware.
### Packages npm et Packagist d'Intercom compromis dans le cadre de Mini Shai-Hulud
Dans un développement connexe, il est apparu que la version 7.0.4 de `intercom-client` a été compromise dans le cadre de la campagne Mini Shai-Hulud, suivant un modus operandi similaire à celui des packages SAP pour déclencher l'exécution d'un malware de vol d'identifiants à l'aide d'un hook preinstall.
"Le chevauchement est significatif car la campagne SAP CAP était liée à l'activité de TeamPCP sur la base de détails techniques partagés, y compris des modèles d'implémentation de charge utile distinctifs, l'exfiltration basée sur GitHub, la collecte d'identifiants dans les environnements de développeur et CI/CD, et des similitudes avec des attaques antérieures affectant Checkmarx, Bitwarden, Telnyx, LiteLLM et Aqua Security Trivy," a déclaré Socket.

Il a depuis été confirmé que l'utilisateur GitHub "nhur" a été piraté et que le package malveillant [email protected] a été publié via une branche maintenant supprimée qui a déclenché un flux de travail de publication CI automatisé. Parallèlement, la campagne s'est également étendue à **Packagist** avec la compromission de "intercom/intercom-php" (version 5.0.2), qui adapte le même mécanisme de vol d'identifiants pour l'écosystème PHP.
Plus précisément, le package utilise l'exécution du plugin Composer pour télécharger Bun au moyen d'un script shell ("setup-intercom.sh") qui est déclenché lors des événements d'installation ou de mise à jour (via les hooks "post-install-cmd" et "post-update-cmd") et lance une charge utile de vol d'identifiants obfusquée "router_runtime.js".
Le composant malware, comme auparavant, cible GitHub, npm, les clés SSH, les identifiants cloud, Kubernetes, Vault, les identifiants Docker, les fichiers .env, et d'autres secrets de développeur/CI. Les données volées sont ensuite chiffrées et exfiltrées vers un serveur distant ("zero.masscan[.]cloud:443/v1/telemetry"). Si cette méthode principale échoue, elle se rabat sur la méthode d'exfiltration basée sur GitHub en utilisant les jetons GitHub volés en créant un dépôt public avec la description "A Mini Shai-Hulud has Appeared."
Il est également équipé de capacités de propagation, abusant des jetons npm découverts pour modifier et republier des packages contenant le malware, en plus d'écrire