Des chercheurs en sécurité ont identifié une attaque de chaîne d’approvisionnement visant des paquets npm officiels de SAP. Les assaillants, soupçonnés d’appartenir au groupe TeamPCP, visaient à dérober des identifiants et tokens d’authentification sur les systèmes des développeurs.
Quatre paquets npm affectés
Les versions compromises, désormais dépréciées sur NPM, concernent :
- @cap-js/sqlite – v2.2.2
- @cap-js/postgres – v2.2.2
- @cap-js/db-service – v2.10.1
- mbt – v1.2.48
Ces outils soutiennent le Cloud Application Programming Model (CAP) et le Cloud MTA de SAP, populaires pour les projets d’entreprise.
Mécanisme de l’attaque
Les paquets modifiés intègrent un script preinstall malveillant activé lors de l’installation via npm. Ce dernier déclenche un loader nommé setup.mjs, qui récupère le runtime JavaScript Bun depuis GitHub. Ce runtime exécute ensuite un payload obfuscqué, execution.js.
Ce malware exfiltre divers identifiants, notamment :
- tokens d’authentification npm et GitHub
- clés SSH et identifiants développeurs
- accréditations cloud pour AWS, Azure et Google Cloud
- configurations et secrets Kubernetes
- secrets et variables d’environnement des pipelines CI/CD
Extraction de mémoire et exfiltration
Sur les runners CI/CD, le payload déploie un script Python intégré pour scanner la mémoire des processus Runner.Worker. Il cible les secrets au format "key" :{ "value": "...", "isSecret":true}, contournant les masquages de logs. Cette technique rappelle les incidents Bitwarden et Checkmarx.
Les données collectées sont chiffrées puis transmises vers des dépôts GitHub créés sous le compte de la victime, identifiés par la description « A Mini Shai-Hulud has Appeared ».

Source: Aikido
Propagation et dead-drop
Le malware exploite les recherches de commits GitHub comme mécanisme de dead-drop. Il détecte les messages contenant « OhNoWhatsGoingOnWithGitHub: », les décode en tokens pour accéder à des dépôts.
Il inclut aussi un code pour s’auto-propager : avec les identifiants volés, il modifie d’autres paquets et repositories accessibles, injectant le même malware.
Attribution et origines
Les analyses d’Aikido et Socket relient l’opération à TeamPCP avec une confiance moyenne, en raison de similarités avec leurs attaques sur Trivy, Checkmarx et Bitwarden.
Le mode d’intrusion dans le processus de publication SAP reste flou. Un ingénieur sécurité, Adnan Khan, évoque un token NPM potentiellement exposé par un job CircleCI mal configuré. BleepingComputer a interrogé SAP sans obtenir de réponse au moment de la publication.
