đ Contexte
Le 23 septembre 2026, SafeDep publie une analyse technique dĂ©taillĂ©e d’une attaque de type supply chain ciblant deux packages open source du projet MemTensor. L’attaque a Ă©tĂ© dĂ©tectĂ©e via un signalement communautaire (issue #173) sur le dĂ©pĂŽt GitHub du plugin OpenClaw.
đŻ Packages compromis
- npm :
@memtensor/memos-cloud-openclaw-pluginâ versions malveillantes 0.1.21, 0.1.23, 0.1.25 - PyPI :
MemoryOSâ version malveillante 2.0.34
Les deux packages contiennent le mĂȘme implant Go nommĂ© sckit, compilĂ© pour six plateformes (linux/darwin/windows Ă amd64/arm64).
đ ïž MĂ©thode d’intrusion â Vol des tokens CI/CD
Pour npm : L’attaquant (via le compte GitHub Memtensor-AI) a poussĂ© des commits sur une branche Ă©phĂ©mĂšre sc/release-*. Ces commits modifient le script de validation validate-release-confirmation.mjs pour injecter une entrĂ©e BASH_ENV dans $GITHUB_ENV, pointant vers sckit-publish-bridge.sh. Ce script s’exĂ©cute avant l’Ă©tape de publication npm et appelle collectStageZero() pour exfiltrer le token npm vers les serveurs C2, puis se supprime lui-mĂȘme.
Pour PyPI : L’attaquant a modifiĂ© pyproject.toml pour substituer le backend de build Poetry par sckit_poetry_build, qui utilise la mĂȘme technique BASH_ENV via _pypi_bridge.sh. Le script exfiltre INPUT_PASSWORD (token PyPI) vers 10729e014d0e.skyleen.fr, puis laisse le workflow publier le package malveillant lors d’un second commit (41bf5c7).
đŠ Comportement de l’implant sckit
- Déclenchement : au démarrage du gateway OpenClaw, à chaque rappel mémoire (npm), et à chaque appel de
configure_logging()(PyPI) - Collecte de credentials : fichiers
.npmrc,.pypirc,.git-credentials,.netrc, clĂ©s SSH (id_rsa,id_ecdsa,id_ed25519),.vault-token, tokens cloud, variables d’environnement contenanttoken,secret,password,api_key - Formats de tokens ciblĂ©s : JWT, AWS (
AKIA/ASIA), GitHub PAT, GitLab, npm, PyPI, HuggingFace, Vault, Slack, Stripe, SendGrid - Exfiltration : vers des sous-domaines de
skyleen.frvia HTTPS (CBOR + X25519 + XChaCha20-Poly1305) - Propagation (worm) : recherche de dĂ©pĂŽts accessibles avec les credentials volĂ©s, injection d’un workflow GitHub Actions
runtime-update.ymlet de loaders Python/Node.js - Profilage hÎte : timezone, langue, géolocalisation ISO, filtrage par pays (
deny_iso) et empreinte TLS (ja4_deny) - Auto-destruction : fonctions
scheduleSelfDeleteetdeleteExecutable
đ Configuration de campagne
campaign_idnpm :cloud-openclaw-semi-nuclearcampaign_idPyPI :memos-semi-nuclear- Module Go :
supplychain.local/campaign/cmd/implant - Expiration intégrée : 22-23 octobre 2026
- RĂ©pertoires d’Ă©tat :
$HOME/.openclaw/.cache/runtimeet$HOME/.memos/.cache/runtime
đ Chronologie (UTC, 23 sept. 2026)
- 00:48â02:03 : Cinq push/delete de la branche
sc/release-*parMemtensor-AI - 02:23 : Publication npm 0.1.21 malveillant
- 03:17 : Commit
b52958fsur MemOS (ajout sckit + CI token stealer) - 03:45â04:36 : Alternance versions clean/malveillantes npm (0.1.22 Ă 0.1.25)
- 05:24â05:25 : Commit
41bf5c7, recréation du tagv2.0.34, publication PyPI - 05:55 : Suppression du tag
v2.0.34-capture-1
đ° Nature de l’article
Il s’agit d’une analyse technique approfondie publiĂ©e par SafeDep, documentant une attaque supply chain active avec extraction complĂšte des IOCs, des hashes binaires, des techniques d’attaque et des indicateurs de persistance. L’objectif est d’informer les Ă©quipes de sĂ©curitĂ© et les mainteneurs de packages affectĂ©s.
đ§ TTPs et IOCs dĂ©tectĂ©s
TTP
- T1195.001 â Supply Chain Compromise: Compromise Software Dependencies and Development Tools (Initial Access)
- T1059.004 â Command and Scripting Interpreter: Unix Shell (Execution)
- T1552.001 â Unsecured Credentials: Credentials In Files (Credential Access)
- T1555 â Credentials from Password Stores (Credential Access)
- T1041 â Exfiltration Over C2 Channel (Exfiltration)
- T1027 â Obfuscated Files or Information (Defense Evasion)
- T1543 â Create or Modify System Process (Persistence)
- T1071.001 â Application Layer Protocol: Web Protocols (Command and Control)
- T1573.001 â Encrypted Channel: Symmetric Cryptography (Command and Control)
- T1036 â Masquerading (Defense Evasion)
- T1070.004 â Indicator Removal: File Deletion (Defense Evasion)
- T1526 â Cloud Service Discovery (Discovery)
- T1608.003 â Stage Capabilities: Install Digital Certificate (Resource Development)
IOC
- Domaines :
skyleen.frâ VT · URLhaus · ThreatFox - Domaines :
8a8acaf167b3.skyleen.frâ VT · URLhaus · ThreatFox - Domaines :
0b48fafd6fbe.skyleen.frâ VT · URLhaus · ThreatFox - Domaines :
266297c6df27.skyleen.frâ VT · URLhaus · ThreatFox - Domaines :
c747d139e7e9.skyleen.frâ VT · URLhaus · ThreatFox - Domaines :
73376a079d87.skyleen.frâ VT · URLhaus · ThreatFox - Domaines :
d4f77a3a8cb0.skyleen.frâ VT · URLhaus · ThreatFox - Domaines :
10729e014d0e.skyleen.frâ VT · URLhaus · ThreatFox - URLs :
https://10729e014d0e.skyleen.fr/eb57efaa7365698fc1e4decc/initial-ci-v2â URLhaus - URLs :
https://8a8acaf167b3.skyleen.fr/6110ea0c63c61803b1232685/configâ URLhaus - URLs :
https://8a8acaf167b3.skyleen.fr/6110ea0c63c61803b1232685/statusâ URLhaus - URLs :
https://8a8acaf167b3.skyleen.fr/6110ea0c63c61803b1232685/batchâ URLhaus - SHA256 :
995a208944176c437a023f4a5c11baad2eb77a91847893c82e5866eaabedb810â VT · MalwareBazaar - SHA256 :
6caf89b059e9b6c82bb4ac4727816d516753c4d26833434dea0ecda44a346eb3â VT · MalwareBazaar - SHA256 :
a6870826cd7c7ec8d32af227252efcdcdca03ac956d4702cdc2157ca82641673â VT · MalwareBazaar - SHA256 :
39ee644406829a4b630b31759c20478bc22d576d6a59b253ed86f72c360aa5efâ VT · MalwareBazaar - SHA256 :
92b46d18fc553c494eda714f204459edb74c205bf53b18a9092bcf02c7a6c5beâ VT · MalwareBazaar - SHA256 :
381ac6dc1715d9298fe81b2a53a11f7b7d78e361ee3a6619ad54f8c4b062cc18â VT · MalwareBazaar - SHA256 :
c1b0998347b489582bae7b7f4930f9831d9ef4b6bc150cfd488ee1a43272dd36â VT · MalwareBazaar - SHA256 :
e077c387b223811064b7bbc5a55a0182fca9bf50894f949ff284d4be87d44b26â VT · MalwareBazaar - SHA256 :
8f647f17a1934679c4095e21bee2b9bd83e28476603758bc91408a0c84â VT · MalwareBazaar - SHA256 :
65faf8ccbcf5b34eb4f72c71bf82815fa9c1e2f947b9c898491540e866132c31â VT · MalwareBazaar - SHA256 :
9de0d5b0ca184f71f630be5781d134998883a02d5d7bc65aeb9559d8f9â VT · MalwareBazaar - SHA256 :
f8ccdd1da7dff1aef16377a2842bc7acf7c516e32122dd6e42dc4a4e57653fceâ VT · MalwareBazaar - SHA256 :
5405e330507602e803f7dd6f2a9d4555aec8558ab222b51413594a962dâ VT · MalwareBazaar - SHA256 :
56cd3416d2ec2aa7e7cec2a06010cf0b58eb09c0a5486809df52afeaca8f14beâ VT · MalwareBazaar - SHA256 :
16de381deb978744535b10f68fe15165251374b86eef18ffc2c47f61eaâ VT · MalwareBazaar - SHA256 :
d6b3e77c36ee8017c9bf30d1da7218ec0ea843768d313eb8e35845c8a9b38a26â VT · MalwareBazaar - SHA256 :
f7c4014e284f3d56c452b8b222a287c54f73dc4a40a7e022e765ac8376â VT · MalwareBazaar - SHA256 :
5dbc82475ce61369e53f795f0a44451715763450051fa2a84d38d6b2e8700114â VT · MalwareBazaar - Emails :
ci-review@memtensor.invalid - Fichiers :
sckit - Fichiers :
sckit.exe - Fichiers :
sckit-publish-bridge.sh - Fichiers :
_pypi_bridge.sh - Fichiers :
sckit_poetry_build.py - Fichiers :
runtime-update.yml - Fichiers :
memos-cloud-openclaw-plugin-0.1.21.tgz - Fichiers :
memos-cloud-openclaw-plugin-0.1.23.tgz - Fichiers :
memos-cloud-openclaw-plugin-0.1.25.tgz - Fichiers :
memoryos-2.0.34-py3-none-any.whl - Fichiers :
memoryos-2.0.34.tar.gz - Fichiers :
ca-roots.pem - Fichiers :
sckit.js - Fichiers :
_stage0.py - Fichiers :
_initial_ci_delivery.py - Fichiers :
validate-release-confirmation.mjs - Chemins :
$HOME/.openclaw/.cache/runtime - Chemins :
$HOME/.memos/.cache/runtime - Chemins :
.sckit/linux-amd64/sckit - Chemins :
lib/sckit.js - Chemins :
memos/_stage0.py - Chemins :
src/memos/.sckit - Chemins :
src/memos/_pypi_bridge.sh
â ïž Ă propos de ces IOC â ils sont extraits automatiquement de l’article original le 24 septembre 2026 et n’ont pas fait l’objet d’une vĂ©rification externe. Un indicateur peut avoir Ă©tĂ© rĂ©attribuĂ© depuis : une IP de C2 peut redevenir un service lĂ©gitime, un domaine sinkholĂ© peut changer de propriĂ©taire. Aucune garantie d’exactitude ni d’actualitĂ© â contrĂŽlez leur validitĂ© avant tout usage opĂ©rationnel, en particulier avant de les injecter dans une blocklist ou un SIEM.
Malware / Outils
- sckit (other)
- sckit implant (Go worm) (rat)
đĄ Indice de vĂ©rification factuelle : 55/100 (moyenne)
- ⏠safedep.io â source non rĂ©fĂ©rencĂ©e (0pts)
- â 24722 chars â texte complet (fulltext extrait) (15pts)
- â 54 IOCs dont des hashes (15pts)
- ⏠0/9 IOCs confirmés externellement (0pts)
- â 13 TTPs MITRE identifiĂ©es (15pts)
- â date extraite du HTML source (10pts)
- ⏠aucun acteur de menace nommé (0pts)
- ⏠pas de CVE à vérifier (0pts)
đ Source originale : https://safedep.io/memtensor-sckit-worm-npm-pypi/