D-OPEN

Attaque npm keyv : un ver informatique vole les credentials de 2 500 organisations via la supply chain npm

Infrastructure serveur representant la propagation d'un ver dans la supply chain npm keyv
Bryan

Bryan

Expert delivery et équipes offshore · 29 aout 2026 · 14 min de lecture

TL;DR — L’essentiel en 30 secondes

  • • Le 4 aout 2026, un attaquant prend le controle du compte GitHub de Jared Wray (jaredwray), mainteneur de keyv et de la famille cacheable.
  • • Il publie des versions malveillantes de 10 paquets npm de caching largement utilises, totalisant 2 milliards+ de telechargements mensuels.
  • • Le payload : un stealer de 728 KB obfusque ciblant .npmrc, GitHub CLI tokens, AWS credentials, Vault tokens, kubeconfigs et portefeuilles crypto.
  • • Innovation : le ver utilise un smart contract Ethereum comme serveur de commande et controle (C2).
  • • Le ver s’auto-propage via les tokens npm voles → 400+ paquets infectes, 2 500 organisations, 434 000 pipelines CI/CD exposes.
  • • Les tarballs empoisonnes portent une provenance npm VALIDE signee par GitHub Actions — invisible a npm audit signatures.
  • • Sources : The Hacker News, Socket.dev, Chainguard, Snyk.

L’ecosysteme npm vient de subir ce qui pourrait etre l’attaque supply chain la plus sophistiquee de son histoire. Le 4 aout 2026, un attaquant a pris le controle du compte GitHub de Jared Wray — le mainteneur derriere keyv, l’une des bibliotheques de caching les plus utilisees du monde JavaScript avec 127 millions de telechargements hebdomadaires. En exploitant cet acces, l’attaquant a publie des versions malveillantes de 10 paquets npm de caching largement adoptes dans l’ecosysteme, declenchant une cascade d’infections sans precedent.

Ce qui distingue cette attaque des incidents precedents — event-stream, ua-parser-js, ou meme la premiere vague Mini Shai-Hulud sur TanStack en mai 2026 — c’est la combinaison de trois innovations offensives. Premierement, un payload massif de 728 Ko capable de voler huit categories de credentials differentes, des tokens npm aux kubeconfigs Kubernetes. Deuxiemement, l’utilisation d’un smart contract Ethereum comme infrastructure de commande et controle, rendant le takedown quasi impossible. Troisiemement, un mecanisme de ver auto-propagateur : chaque token npm vole est immediatement utilise pour publier de nouvelles versions corrompues d’autres paquets, creant une propagation exponentielle.

Le bilan, selon les analyses de Socket.dev et Chainguard, est vertigineux : plus de 400 paquets compromis, 2 500 organisations directement touchees, et 434 000 pipelines CI/CD potentiellement exposes. Le detail le plus inquietant ? Les tarballs empoisonnes portaient une provenance npm valide, signee par les workflows GitHub Actions legitimes du depot — ce qui signifie que les mecanismes de verification de provenance Sigstore, censes proteger l’ecosysteme, ont ete completement contournes. Cet article decortique le mecanisme d’attaque, etablit la chronologie, mesure l’impact et detaille les contre-mesures immediates pour les equipes de developpement open source francophones.

Phase 1 : la compromission du compte GitHub de jaredwray

L’attaque commence par ce qui ressemble a un classique de la compromission de mainteneur : la prise de controle du compte GitHub de Jared Wray. Selon l’analyse de Chainguard, le vecteur initial est probablement un token d’acces personnel (PAT) compromis — soit par un infostealer precedent, soit par une campagne de phishing ciblee. Le compte ne disposait pas d’une authentification a deux facteurs materielle (WebAuthn/FIDO2), s’appuyant uniquement sur un TOTP logiciel plus facilement contournable.

Une fois le compte GitHub en main, l’attaquant dispose d’un acces en ecriture a l’ensemble des depots de la famille keyv et cacheable. Mais au lieu de publier directement sur le registre npm — ce qui aurait necessite un token npm separe — il adopte une strategie plus subtile et plus devastatrice : il modifie le code source et laisse les workflows GitHub Actions publier pour lui. Le commit malveillant ajoute deux fichiers au depot keyv : setup.mjs (le dropper) et Math_Symbol.js (le payload principal de 728 Ko). Un script "preinstall": "node setup.mjs" est ajoute au package.json. L’attaquant pousse ensuite un tag v6.0.0, declenchant le workflow de publication automatique configure sur le depot.

C’est le CI/CD legitime du projet qui publie keyv@6.0.0 sur npm. Le paquet resultant porte une attestation de provenance Sigstore parfaitement valide, generee par le workflow GitHub Actions officiel. Pour npm et pour les outils de verification comme npm audit signatures, ce paquet est authentique. La meme operation est repetee sur neuf autres paquets de la famille cacheable : cacheable, cacheable-request, flat-cache, file-entry-cache, et leurs sous-dependances.

Timeline de l’attaque npm keyv — 4-8 aout 2026

TIMELINE ATTAQUE NPM KEYV — 4-8 AOUT 20264 aout, 01h30 UTCCompromission du compte GitHub jaredwray. Connexion via PAT vole.4 aout, 02h00 UTCPush du commit malveillant sur keyv : setup.mjs + Math_Symbol.js (728 KB).4 aout, 02h08 UTCTag v6.0.0 pousse. GitHub Actions declenche le workflow publish. keyv@6.0.0 sur npm.4 aout, 02h15-04h00 UTCMeme operation sur 9 autres paquets : cacheable@1.9.0, flat-cache, file-entry-cache...4 aout, 06h-20h UTCPhase de propagation du ver. Tokens npm voles → 400+ paquets secondaires infectes.4 aout, 21h14 UTCSocket.dev publie la premiere alerte. The Hacker News relaie. Snyk confirme.5 aout, 03h UTCnpm revoque les versions compromises. GitHub desactive le compte jaredwray.6-8 aoutChainguard et Snyk publient les analyses techniques. 2 500 orgs, 434K pipelines identifies.Sources : Socket.dev, The Hacker News, Chainguard, Snyk | Diagramme d-open.org

Le delai entre la publication de keyv@6.0.0 (02h08 UTC) et la premiere alerte publique de Socket.dev (21h14 UTC) est de 19 heures et 6 minutes. Pendant cette fenetre, chaque npm install ou npm ci qui resolvait keyv sans version epinglee dans le lockfile telechargeait la version malveillante. Avec 127 millions de telechargements hebdomadaires pour keyv seul, le nombre d’installations pendant la fenetre d’exposition se chiffre en centaines de milliers. L’attaque a ete lancee un samedi — un choix delibere pour maximiser le delai avant detection.

Notre avis d’expert n° 1 : le smart contract Ethereum comme C2, une premiere dans la supply chain npm

Avis d’expert #1 — L’infrastructure C2 decentralisee rend le takedown quasi impossible

L’utilisation d’un smart contract Ethereum comme serveur de commande et controle (C2) represente un saut conceptuel dans les attaques supply chain. Dans les incidents precedents, le C2 etait un serveur classique ou un domaine DNS dynamique — des ressources centralisees que les equipes securite pouvaient demander a prendre en charge (takedown). Avec un smart contract Ethereum, les donnees exfiltrees sont ecrites dans un contrat immuable sur la blockchain. Aucune autorite centrale ne peut le supprimer. Les cles volees restent accessibles a l’attaquant indefiniment, meme apres la detection de l’attaque. La seule parade est la rotation immediate de tous les secrets — il n’y a pas de plan B. Pour les equipes francaises, cela signifie que le temps de response n’est plus une question d’heures mais de minutes : chaque minute ou un credential volé n’est pas revoque est une minute ou l’attaquant peut l’utiliser.

D’apres l’analyse de Chainguard, le payload Math_Symbol.js de 728 Ko est fortement obfusque avec plusieurs couches de Base64, de chiffrement XOR et d’evaluation dynamique (eval et Function). Une fois desobfusque, il revele un stealer multiplateforme (Windows, macOS, Linux) qui cible systematiquement huit categories de secrets : les fichiers ~/.npmrc et ~/.yarnrc, les tokens GitHub CLI (~/.config/gh/hosts.yml), les credentials AWS (~/.aws/credentials), les tokens HashiCorp Vault, les kubeconfigs (~/.kube/config), les cles SSH (~/.ssh/), les fichiers .env et les fichiers de configuration de portefeuilles crypto.

Les donnees collectees sont chiffrees avec une cle AES-256 derivee dynamiquement, puis encodees en calldata et envoyees a un smart contract Ethereum via un noeud RPC public. L’attaquant peut ensuite lire les donnees a tout moment en interrogeant le contrat. Ce mecanisme elimine le point de defaillance unique des C2 traditionnels et rend le suivi par les equipes de reponse a incident considerablement plus complexe.

Phase 2 : le mecanisme de propagation du ver

La veritable innovation de cette attaque reside dans son mecanisme de ver auto-propagateur. Contrairement aux attaques supply chain lineaires precedentes ou un seul paquet etait compromis, ici chaque machine infectee devient un vecteur de propagation. Le processus est methodique.

Lorsqu’un developpeur execute npm install sur un projet qui depend de keyv, le hook preinstall execute setup.mjs. Ce dropper telecharge et execute le payload principal Math_Symbol.js. Le payload commence par collecter le fichier ~/.npmrc de la machine — qui contient le token d’authentification npm du developpeur. Ce token est immediatement utilise pour enumerer tous les paquets auxquels le developpeur a acces en ecriture via l’API npm. Pour chaque paquet accessible, le ver genere une nouvelle version contenant le meme payload, la publie automatiquement, et passe au paquet suivant.

Chaine de propagation du ver npm keyv — Mecanisme d’auto-replication

MECANISME DE PROPAGATION DU VER NPM KEYVATTAQUANTControle compte jaredwrayREGISTRE NPMkeyv@6.0.0 + 9 paquets malveillantsnpm installnpm installnpm installDEV MACHINE Apreinstall → setup.mjs → vol tokensMaintient 12 paquets npmDEV MACHINE Bpreinstall → setup.mjs → vol tokensMaintient 25 paquets npmDEV MACHINE Cpreinstall → setup.mjs → vol tokensMaintient 8 paquets npmETHEREUM C2Smart contract — exfiltration credentialsPUBLICATION12 paquets infectesPUBLICATION8 paquets infectesBOUCLE EXPONENTIELLE : 10 → 55 → 400+ paquetsChaque machine infectee propage a tous les paquets du mainteneurDiagramme d-open.org — 29 aout 2026 | Sources : Socket.dev, Chainguard, Snyk

La propagation a suivi trois vagues. La premiere vague (02h-04h UTC) correspond aux 10 publications directes par l’attaquant via les workflows CI/CD du depot jaredwray. La deuxieme vague (06h-14h UTC) est la premiere generation de propagation automatique : les developpeurs qui ont execute npm install le matin (heure europeenne) ont vu leurs tokens voles, et le ver a publie environ 45 nouvelles versions corrompues. La troisieme vague (14h-21h UTC) est la deuxieme generation : les paquets de la deuxieme vague ont a leur tour infecte d’autres machines, ajoutant environ 350 paquets supplementaires. La progression geometrique.

D’apres Snyk, le ver ne se contente pas de publier des versions corrompues. Il modifie aussi les tags latest et next des paquets infectes, s’assurant que toute nouvelle installation sans version epinglee recoit la version malveillante. Il ajoute egalement des postinstall scripts pour maximiser les chances d’execution sur des machines ou ignore-scripts n’est pas configure.

Notre avis d’expert n° 2 : la provenance npm est contournee — le modele de confiance est rompu

Avis d’expert #2 — La provenance atteste du build, pas de l’integrite du code source

Le fait que keyv@6.0.0 porte une provenance npm valide est le point le plus troublant de cette attaque. Les attestations Sigstore, que npm et GitHub ont deploye comme reponse aux attaques supply chain precedentes, sont censees garantir que le paquet a ete construit par un workflow CI/CD identifie, a partir d’un depot source specifique. Et c’est exactement ce qu’elles font — mais c’est insuffisant. La provenance ne verifie pas que le code source a ete revu et approuve par un mainteneur legitime. Elle ne verifie pas que le commit n’a pas ete pousse par un compte compromis. Le modele de confiance repose sur l’hypothese que quiconque peut pousser sur le depot est autorise a le faire — une hypothese que Chaindrop vient d’invalider. Pour les equipes francaises qui avaient mis en place des verifications de provenance comme mesure de securite, la lecon est claire : la provenance est une condition necessaire mais absolument pas suffisante. Elle doit etre couplee a des branch protection rules strictes, des required reviews sur chaque commit, et une authentification materielle sur les comptes mainteneurs.

La consequence immediate pour l’ecosysteme est la perte de confiance dans les attestations de provenance comme indicateur fiable de securite. Jusqu’a cette attaque, la recommandation standard etait de preferer les paquets avec provenance verificable. Cette recommandation reste valide — un paquet sans provenance est moins tracable — mais elle ne peut plus etre presentee comme une protection contre les mainteneurs compromis.

La solution structurelle, que nous recommandons chez D-Open depuis l’analyse des incidents precedents, est la provenance tridimensionnelle : qui a ecrit le code (commit signe GPG ou SSH), qui a approuve le merge (review signe), et quel workflow a construit le paquet (attestation Sigstore). Seule la combinaison des trois offre une protection efficace. Le rapport de la Linux Foundation sur la securite open source confirme cette direction.

Vos paquets npm publient-ils sur chaque tag push ?

C’est exactement le vecteur exploite par l’attaque keyv. Nous auditons vos workflows GitHub Actions, vos branch protection rules et vos secrets exposes. Premier diagnostic gratuit.

Auditer mes workflows CI/CD →

Impact chiffre : 2 500 organisations, 434 000 pipelines

Les analyses convergentes de Socket.dev, Chainguard et Snyk permettent de dresser un bilan quantitatif de l’incident. Les chiffres, bien qu’encore en cours de consolidation, sont les suivants :

Statistiques d’impact — Attaque npm keyv aout 2026

IMPACT DE L’ATTAQUE NPM KEYV — CHIFFRES CLES400+PAQUETScompromis directementou par propagation2 500ORGANISATIONSdirectement identifieescomme exposees434KPIPELINES CI/CDpotentiellement exposesa des secrets voles2B+INSTALLS/MOISpour les paquetsinitialement ciblesPAYLOAD : 728 KB OBFUSQUE — 8 CATEGORIES DE SECRETS CIBLES.npmrc | GitHub CLI | AWS | Vault | K8s kubeconfig | SSH | .env | Crypto walletsCOMPARAISON AVEC LES ATTAQUES PRECEDENTESMini Shai-Hulud (mai 2026)169 pkgsInjective Labs (jul 2026)18 pkgsKeyv worm (aout 2026)400+ pkgsDiagramme d-open.org — Sources : Socket.dev, Chainguard, Snyk, npm Security

Les paquets les plus critiques touches sont : keyv (127M telechargements/semaine), cacheable (29M), flat-cache (565M cumulatifs) et file-entry-cache (557M cumulatifs). Ces derniers sont des dependances directes d’ESLint — l’outil de linting utilise dans plus de 90 % des projets JavaScript. Autrement dit : si vous avez execute npm install dans un projet avec ESLint pendant la fenetre d’exposition, vous etes potentiellement touche.

La dimension la plus preoccupante est le ciblage des pipelines CI/CD. D’apres Chainguard, 434 000 pipelines GitHub Actions, GitLab CI et Jenkins ont execute npm install avec les paquets compromis pendant la fenetre d’exposition. Les pipelines CI/CD sont des cibles de haute valeur car ils detiennent souvent des secrets de production — tokens de deploiement, cles cloud, credentials de registres de conteneurs. Un pipeline compromis donne acces non seulement au code mais a l’infrastructure de production.

Notre avis d’expert n° 3 : le passage du risque applicatif au risque infrastructure

Avis d’expert #3 — Le ciblage de kubeconfigs et Vault transforme un incident npm en compromission d’entreprise

Les attaques supply chain npm precedentes volaient essentiellement des tokens npm et des variables d’environnement. Le payload de 728 Ko de cette attaque cible specifiquement les kubeconfigs Kubernetes, les tokens HashiCorp Vault et les credentials cloud AWS/GCP/Azure. Ce n’est plus un incident de securite applicative — c’est un vecteur d’entree dans l’infrastructure de production. Un kubeconfig vole donne acces a un cluster Kubernetes entier. Un token Vault donne acces a tous les secrets de l’organisation. Des credentials AWS root donnent acces a l’ensemble des services cloud. Les RSSI francais qui classaient les attaques npm dans la categorie « risque developpeur » doivent requalifier immediatement. Pour les organisations soumises a NIS2, un tel incident entre dans le perimetre de notification obligatoire a l’ANSSI dans les 24 heures. Notre article sur la conformite NIS2 detaille les obligations.

L’ANSSI recommande depuis 2024 un cloisonnement strict entre les postes de developpement et les acces de production. Cette attaque vient de demontrer pourquoi cette recommandation est critique. Dans beaucoup de startups et de PME francaises, les developpeurs executent npm install sur les memes machines qui ont des kubeconfigs pointant vers les clusters de production. Ce melange est desormais un risque existentiel.

Pour les equipes qui deploient sur Kubernetes, notre guide sur la securisation des pipelines CI/CD detaille comment isoler les secrets de production des environnements de build. La regle d’or : aucun secret de production ne devrait etre accessible depuis un poste de developpement local. Les acces doivent passer par des sessions temporaires (AWS SSO, Vault leases, kubeconfigs a duree de vie limitee).

Ce que ca signifie pour vous : 7 actions immediates

Si vous maintenez, deployez ou dependez de projets JavaScript/TypeScript, voici les actions a executer immediatement, classees par priorite decroissante.

Action 1 — Auditer l’exposition aux paquets compromis

Executez npm ls keyv cacheable flat-cache file-entry-cache dans chaque projet. Verifiez les versions dans package-lock.json : keyv@6.0.0 et cacheable@1.9.0 sont les versions malveillantes. Recherchez les fichiers setup.mjs et Math_Symbol.js dans node_modules.

Action 2 — Epingler les versions propres et regenerer le lockfile

Forcez les versions propres : keyv@5.2.3 et cacheable@1.8.7. Ajoutez des overrides npm pour les dependances transitives. Executez npm ci et verifiez que le lockfile ne reference plus les versions compromises. Regenerez votre package-lock.json propre.

Action 3 — Activer ignore-scripts dans .npmrc

Ajoutez ignore-scripts=true dans votre .npmrc projet et global. Le hook preinstall qui execute setup.mjs est le vecteur d’execution du payload. Avec ignore-scripts=true, le payload n’est jamais execute meme si le paquet malveillant est installe.

Action 4 — Faire tourner TOUS les secrets exposes

Si une machine a execute npm install entre le 4 et le 8 aout 2026, considerez tous les secrets presents comme compromis. Tokens npm, cles SSH, credentials AWS/GCP/Azure, kubeconfigs, tokens Vault, fichiers .env — tout doit etre revoque et regenere. L’utilisation d’Ethereum comme C2 signifie que les credentials exfiltres sont accessibles indefiniment.

Action 5 — Auditer les GitHub Actions et ajouter des protections

Verifiez les runs de vos workflows entre le 4 et le 8 aout. Recherchez des publications npm non autorisees. Ajoutez un environnement de deploiement GitHub avec approbation manuelle pour tout workflow qui publie sur npm. Activez les branch protection rules avec required reviews.

Action 6 — Scanner les logs reseau pour les connexions Ethereum

Le payload communique avec un smart contract Ethereum via des noeuds RPC publics (Infura, Alchemy, etc.). Recherchez dans vos logs reseau les connexions sortantes vers les endpoints RPC Ethereum. La presence de telles connexions depuis un serveur de build ou un poste developpeur est un indicateur de compromission fort.

Action 7 — Generer un SBOM a jour pour conformite NIS2

Generez un SBOM CycloneDX avec npx @cyclonedx/cyclonedx-npm --output-file sbom.cdx.json. Archivez-le avec le numero de build. En cas d’audit reglementaire, vous pourrez prouver l’etat exact de vos dependances au moment du build et demontrer que vous avez pris des mesures correctives.

Notre avis d’expert n° 4 : vers une defense en profondeur de la supply chain

Avis d’expert #4 — La securite supply chain ne peut plus reposer sur un seul mecanisme

Cette attaque invalide trois hypotheses de securite que la communaute tenait pour acquises. Premiere hypothese invalidee : « un paquet avec provenance npm est sur » — non, il est tracable mais pas necessairement integre. Deuxieme hypothese invalidee : « le CI/CD est un maillon de confiance » — non, c’est un amplificateur d’acces. Troisieme hypothese invalidee : « les attaques supply chain sont lineaires et lentes » — non, avec un mecanisme de ver, elles sont exponentielles et mesurees en heures. La reponse doit etre une defense en profondeur : epinglage strict des versions, ignore-scripts par defaut, branch protection avec reviews obligatoires, environnements de deploiement avec approbation manuelle, secrets a duree de vie courte, et monitoring en temps reel des publications. Aucune de ces mesures n’est suffisante seule. C’est leur superposition qui offre la resilience. Les equipes qui n’ont deploye qu’une seule couche — typiquement le lockfile — doivent comprendre qu’un lockfile ne protege pas contre un paquet malveillant deja dans l’arbre de dependances.

Chez D-Open, nous avons immediatement audite les workflows de publication de tous les projets open source que nous accompagnons. Le constat est similaire a ce que nous avions identifie apres l’attaque Shai-Hulud Chaindrop : plus de 60 % des projets utilisent des workflows qui publient automatiquement lors d’un tag push, sans environnement de deploiement ni approbation manuelle. La bonne nouvelle est que la correction est relativement simple — quelques modifications dans les fichiers YAML de GitHub Actions et dans les parametres du depot. La mauvaise nouvelle est que cette correction doit etre appliquee a chaque depot individuellement.

Pour approfondir les mesures de protection, consultez notre guide complet sur la securisation des dependances npm et notre analyse de l’incident Phantom-Gyp et Miasma de juin 2026, qui prefigurait plusieurs techniques reutilisees dans cette attaque.

Implications pour l’ecosysteme open source francais

La France compte environ 380 000 developpeurs JavaScript/TypeScript actifs (estimation France Num 2026). La quasi-totalite de leurs projets dependent, directement ou transitivement, d’au moins un paquet de la famille keyv/cacheable. flat-cache et file-entry-cache sont des dependances d’ESLint, l’outil de linting utilise dans plus de 90 % des projets JavaScript francais. Les 434 000 pipelines CI/CD identifies par Chainguard incluent des pipelines d’entreprises francaises du CAC 40 comme de startups de la French Tech.

Les consequences reglementaires sont directes. La directive NIS2 impose aux entites essentielles et importantes de notifier l’ANSSI dans les 24 heures suivant la detection d’un incident significatif. Si des secrets de production (credentials cloud, kubeconfigs) ont ete exfiltres, l’incident entre dans le perimetre de notification obligatoire. Le rapport OSSRA 2026 de Synopsys montrait deja que 87 % des codebases auditees contenaient des composants open source vulnerables. Cette attaque ajoute une dimension supplementaire : la menace n’est plus seulement les vulnerabilites passives mais les compromissions actives par des adversaires organises.

Le rapport Verizon DBIR 2026 documentait le doublement des attaques supply chain par rapport a 2025. L’attaque keyv, avec son mecanisme de ver exponentiel et son ciblage de credentials d’infrastructure, confirme que cette trajectoire s’accelere. Les equipes de securite francaises doivent adapter leur modele de menace en consequence : la supply chain npm n’est plus un risque secondaire — c’est un vecteur d’attaque de premier ordre.

Questions frequentes

Comment le ver npm keyv s’est-il propage a 400+ paquets ?

L’attaquant a compromis le compte GitHub de Jared Wray (jaredwray), mainteneur de keyv et cacheable. Il a publie des versions malveillantes de 10 paquets de caching via les workflows GitHub Actions legitimes du depot. Le payload de 728 Ko volait les tokens .npmrc des machines infectees, puis utilisait ces tokens pour enumerer tous les paquets auxquels le developpeur avait acces en ecriture via l’API npm. Pour chaque paquet accessible, le ver generait et publiait automatiquement une nouvelle version contenant le meme payload. Ce mecanisme d’auto-propagation a permis d’infecter plus de 400 paquets en cascade en moins de 48 heures, suivant une progression geometrique : 10 paquets initiaux, puis 55, puis 400+.

Quels types de credentials sont voles par le ver npm keyv ?

Le payload cible 8 categories de secrets : 1) les tokens ~/.npmrc et ~/.yarnrc, 2) les tokens GitHub CLI (~/.config/gh/hosts.yml), 3) les credentials AWS (access keys, secret keys, session tokens), 4) les tokens HashiCorp Vault, 5) les kubeconfigs Kubernetes (~/.kube/config), 6) les cles SSH (~/.ssh/), 7) les fichiers .env, 8) les fichiers de configuration de portefeuilles crypto. Les donnees sont chiffrees en AES-256 et exfiltrees vers un smart contract Ethereum via des noeuds RPC publics, rendant le takedown impossible.

Pourquoi npm audit signatures n’a pas detecte keyv@6.0.0 comme malveillant ?

Les tarballs empoisonnes portaient une provenance npm valide signee par GitHub Actions. L’attaquant a utilise les workflows CI/CD legitimes du depot pour publier : il a modifie le code source, pousse un tag v6.0.0, et le workflow officiel a construit et publie le paquet avec une attestation Sigstore parfaitement valide. L’attestation de provenance confirme que le paquet a ete construit par le workflow officiel du depot — ce qui est vrai — mais ne verifie pas que le code source lui-meme est integre. C’est une faille fondamentale du modele de confiance : la provenance atteste de l’origine du build, pas de l’integrite du code.

Comment verifier si mon organisation est touchee par l’attaque npm keyv ?

Quatre verifications immediates : 1) Executez npm ls keyv cacheable flat-cache file-entry-cache dans chaque projet et verifiez si keyv@6.0.0 ou cacheable@1.9.0+ apparaissent. 2) Recherchez les fichiers setup.mjs et Math_Symbol.js dans vos node_modules. 3) Analysez vos logs CI/CD entre le 4 et le 8 aout 2026 pour detecter des publications npm non autorisees. 4) Verifiez les connexions sortantes vers des endpoints RPC Ethereum dans vos logs reseau. Si vous etes expose, faites tourner immediatement tous les tokens npm, cles SSH, credentials cloud et secrets CI/CD presents sur les machines concernees.

Votre equipe est-elle exposee a l’attaque npm keyv ?

Sprint D-Open de 2 semaines : audit complet des dependances npm, analyse des pipelines CI/CD exposes, rotation des secrets compromis, mise en place de branch protection et d’environnements de deploiement. Rapport NIS2-compliant. Formation equipe incluse.

Lancer le sprint securite supply chain →

Sources : The Hacker News, Socket.dev, Chainguard (rapport technique), Snyk (analyse payload) — publiees entre le 4 et le 12 aout 2026. Cet article propose une lecture operationnelle pour les equipes de developpement open source francophones ; il ne reproduit aucun element permettant l’exploitation du malware.