{"id":11759,"date":"2026-01-06T15:31:11","date_gmt":"2026-01-06T15:31:11","guid":{"rendered":"https:\/\/techhub.saworks.io\/?p=11759"},"modified":"2026-01-21T13:32:42","modified_gmt":"2026-01-21T13:32:42","slug":"risques-de-compromission-des-github-actions-entrainant-des-fuites-de-donnees-pour-23-000-depots","status":"publish","type":"post","link":"https:\/\/techhub.saworks.io\/fr\/risques-de-compromission-des-github-actions-entrainant-des-fuites-de-donnees-pour-23-000-depots\/","title":{"rendered":"Risques de compromission des GitHub Actions entra\u00eenant des fuites de donn\u00e9es pour 23 000 d\u00e9p\u00f4ts"},"content":{"rendered":"\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<p>Par : Jeff Burt<\/p>\n\n\n\n<p>Une GitHub Action populaire utilis\u00e9e dans plus de 23 000 d\u00e9p\u00f4ts de code a \u00e9t\u00e9 compromise lors d\u2019une attaque de la cha\u00eene d\u2019approvisionnement par des attaquants qui ont introduit un commit malveillant visant \u00e0 divulguer des secrets comme des mots de passe pr\u00e9sents dans des d\u00e9p\u00f4ts publics.<\/p>\n\n\n\n<p>Dans cette compromission, suivie sous l\u2019identifiant CVE-2025-30066, des acteurs malveillants ont modifi\u00e9 le code de la GitHub Action <strong>tj-actions\/changed-files<\/strong> \u2013 utilis\u00e9e par les d\u00e9p\u00f4ts pour suivre les fichiers modifi\u00e9s \u2013 en injectant une fonction Node.js contenant des instructions encod\u00e9es en base64 qui t\u00e9l\u00e9chargent un script Python malveillant. Ce script analyse la m\u00e9moire de <strong>GitHub Runner<\/strong>, qui ex\u00e9cute les jobs d\u2019un workflow GitHub Actions.<\/p>\n\n\n\n<p>La m\u00e9moire de GitHub Runner contient des mots de passe et d\u2019autres identifiants utilis\u00e9s dans le pipeline d\u2019int\u00e9gration et de livraison continues (CI\/CD).<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>\u00ab L\u2019Action compromise affiche les secrets CI\/CD dans les journaux de build GitHub Actions. Si les journaux de workflow sont accessibles publiquement (comme dans les d\u00e9p\u00f4ts publics), n\u2019importe qui pourrait potentiellement lire ces journaux et obtenir les secrets expos\u00e9s \u00bb, a \u00e9crit Varun Sharma, cofondateur et PDG de la startup StepSecurity, dans un rapport.<\/p>\n<\/blockquote>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>La compromission d\u00e9couverte<\/strong><\/h3>\n\n\n\n<p><br>StepSecurity a \u00e9t\u00e9 le premier \u00e0 d\u00e9couvrir la compromission, que Sharma indique avoir commenc\u00e9 t\u00f4t le 14 mars.<\/p>\n\n\n\n<p>La soci\u00e9t\u00e9 de cybers\u00e9curit\u00e9 Sysdig a not\u00e9 qu\u2019apr\u00e8s l\u2019insertion de la fonction Node.js dans l\u2019action, la charge utile en base64 se d\u00e9code pour r\u00e9v\u00e9ler un script qui t\u00e9l\u00e9charge du code Python suppl\u00e9mentaire depuis un gist GitHub. Ce script Python identifie le GitHub Runner, ouvre les mappages m\u00e9moire et recherche des identifiants en utilisant des expressions r\u00e9guli\u00e8res.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"566\" data-src=\"https:\/\/techhub.saworks.io\/wp-content\/uploads\/2026\/01\/Capture-decran-2026-01-06-152753-1024x566.png\" alt=\"\" class=\"wp-image-11760 lazyload\" data-srcset=\"https:\/\/techhub.saworks.io\/wp-content\/uploads\/2026\/01\/Capture-decran-2026-01-06-152753-1024x566.png 1024w, https:\/\/techhub.saworks.io\/wp-content\/uploads\/2026\/01\/Capture-decran-2026-01-06-152753-300x166.png 300w, https:\/\/techhub.saworks.io\/wp-content\/uploads\/2026\/01\/Capture-decran-2026-01-06-152753-768x424.png 768w, https:\/\/techhub.saworks.io\/wp-content\/uploads\/2026\/01\/Capture-decran-2026-01-06-152753.png 1272w\" data-sizes=\"(max-width: 1024px) 100vw, 1024px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/566;\" \/><\/figure>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>\u00ab Les r\u00e9sultats sont affich\u00e9s et stock\u00e9s dans les journaux de build GitHub Actions \u00bb, a \u00e9crit Michael Clark, chercheur en menaces chez Sysdig. \u00ab Les attaquants doivent avoir acc\u00e8s \u00e0 ces journaux pour extraire les secrets. \u00bb<\/strong><\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Les d\u00e9p\u00f4ts de code comme cibles<\/strong><\/h3>\n\n\n\n<p>Il s\u2019agissait de la derni\u00e8re attaque contre un d\u00e9p\u00f4t de code, GitHub et d\u2019autres \u2013 tels que le Python Package Index (PyPI) et npm \u2013 devenant des cibles populaires pour les acteurs malveillants, qui ins\u00e8rent du code malveillant dans des packages de d\u00e9veloppeurs, lequel se propage ensuite en aval lorsque les entreprises l\u2019installent sans le savoir.<\/p>\n\n\n\n<p>C\u2019est cette large port\u00e9e qui rend les sources de logiciels utilis\u00e9es massivement pour des syst\u00e8mes applicatifs les surfaces d\u2019attaque les plus recherch\u00e9es, selon Mitch Ashley, vice-pr\u00e9sident et responsable de la pratique DevOps et d\u00e9veloppement d\u2019applications chez The Futurum Group.<\/p>\n\n\n\n<p>\u00ab Ces attaques contre l\u2019open source, les d\u00e9p\u00f4ts, les biblioth\u00e8ques, les gestionnaires de packages et les images de conteneurs expliquent pourquoi le DevSecOps est pass\u00e9 de la s\u00e9curit\u00e9 applicative \u00e0 la s\u00e9curit\u00e9 de la cha\u00eene d\u2019approvisionnement logicielle \u00bb, a d\u00e9clar\u00e9 Ashley \u00e0 DevOps.<\/p>\n\n\n\n<p>Dans l\u2019attaque contre GitHub Actions, \u00ab le d\u00e9p\u00f4t de code qui surveille les modifications de fichiers a servi de syst\u00e8me de livraison pour un code malveillant qui lisait la m\u00e9moire et les donn\u00e9es, envoyant ces informations aux attaquants \u00bb, a expliqu\u00e9 Ashley. \u00ab En r\u00e9cup\u00e9rant et en compilant un logiciel infect\u00e9 depuis le d\u00e9p\u00f4t et en ex\u00e9cutant du code infect\u00e9, cela a expos\u00e9 les informations de l\u2019utilisateur aux attaquants. \u00bb<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Beaucoup de compromissions, quelques fuites<\/strong><\/h3>\n\n\n\n<p>Selon Sharma de StepSecurity, la plupart des versions de <strong>tj-actions\/changed-files<\/strong> ont \u00e9t\u00e9 compromises, et plusieurs d\u00e9p\u00f4ts publics ont divulgu\u00e9 des secrets dans les journaux de build. GitHub a pris des mesures rapides d\u00e8s la d\u00e9tection du probl\u00e8me, notamment en d\u00e9sactivant l\u2019Action <strong>tj-actions\/changed-files<\/strong>. Selon Sharma, le d\u00e9p\u00f4t a \u00e9t\u00e9 restaur\u00e9 plus tard le 15 mars, sans aucune version contenant le code malveillant.<\/p>\n\n\n\n<p>Les chercheurs en renseignement sur les menaces cherchent encore \u00e0 comprendre comment la campagne a fonctionn\u00e9 ou qui en est \u00e0 l\u2019origine, bien que les mainteneurs de <strong>tj-actions<\/strong> aient \u00e9crit qu\u2019il semble que cela r\u00e9sulte d\u2019un jeton d\u2019acc\u00e8s personnel GitHub (PAT) compromis, utilis\u00e9 par <strong>@tj-actions-bot<\/strong>, un bot disposant d\u2019un acc\u00e8s privil\u00e9gi\u00e9 au d\u00e9p\u00f4t.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>R\u00e9parations en cours<\/strong><\/h3>\n\n\n\n<p>Les mainteneurs ont indiqu\u00e9 qu\u2019apr\u00e8s la d\u00e9tection du probl\u00e8me, le PAT compromis a \u00e9t\u00e9 r\u00e9voqu\u00e9, le mot de passe du compte <strong>tj-actions-bot<\/strong> a \u00e9t\u00e9 mis \u00e0 jour, et l\u2019acc\u00e8s au compte utilise d\u00e9sormais uniquement les permissions minimales n\u00e9cessaires. De plus, un passkey est d\u00e9sormais requis.<\/p>\n\n\n\n<p>Les chercheurs de la startup de cybers\u00e9curit\u00e9 Wiz ont \u00e9crit que le principal risque de la compromission concerne les d\u00e9p\u00f4ts publics, o\u00f9 les secrets sont d\u00e9vers\u00e9s dans les journaux de workflow \u00e9galement publics, ajoutant que \u00ab le risque pour les d\u00e9p\u00f4ts priv\u00e9s est limit\u00e9 \u00bb.<\/p>\n\n\n\n<p>La chasse aux menaces men\u00e9e par les chercheurs de Wiz a identifi\u00e9 des dizaines de d\u00e9p\u00f4ts affect\u00e9s par l\u2019Action GitHub malveillante, y compris des d\u00e9p\u00f4ts g\u00e9r\u00e9s par de grandes organisations.<\/p>\n\n\n\n<p>\u00ab Dans ces d\u00e9p\u00f4ts, la charge utile malveillante s\u2019est ex\u00e9cut\u00e9e avec succ\u00e8s et a provoqu\u00e9 des fuites de secrets dans les journaux de workflow \u00bb, ont-ils \u00e9crit. \u00ab Certains des secrets divulgu\u00e9s que nous avons identifi\u00e9s jusqu\u2019\u00e0 pr\u00e9sent incluent des cl\u00e9s d\u2019acc\u00e8s AWS valides, des jetons d\u2019acc\u00e8s personnel GitHub (PAT), des jetons npm, des cl\u00e9s RSA priv\u00e9es et plus encore. \u00bb<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Plus que des secrets<\/strong><\/h3>\n\n\n\n<p>Dimitri Stiliadis, cofondateur et CTO chez Endor Labs, a d\u00e9clar\u00e9 que l\u2019acteur malveillant avait des objectifs plus ambitieux que simplement acc\u00e9der aux secrets.<\/p>\n\n\n\n<p>\u00ab L\u2019attaquant ne cherchait probablement pas des secrets dans des d\u00e9p\u00f4ts publics \u2014 ils sont d\u00e9j\u00e0 publics \u00bb, a \u00e9crit Dimitri Stiliadis dans un billet de blog d\u00e9crivant les risques. \u00ab Il cherchait probablement \u00e0 compromettre la cha\u00eene d\u2019approvisionnement logicielle pour d\u2019autres biblioth\u00e8ques open source, binaires et artefacts cr\u00e9\u00e9s avec cela. Tout d\u00e9p\u00f4t public qui cr\u00e9e des packages ou des conteneurs dans le cadre d\u2019un pipeline CI pourrait avoir \u00e9t\u00e9 impact\u00e9. Cela signifie que potentiellement des milliers de packages open source pourraient avoir \u00e9t\u00e9 compromis. \u00bb<\/p>\n\n\n\n<p>Les fournisseurs de s\u00e9curit\u00e9 ont identifi\u00e9 une s\u00e9rie d\u2019actions que les organisations devraient entreprendre, notamment effectuer une recherche de code dans les d\u00e9p\u00f4ts, examiner les journaux pour les ex\u00e9cutions r\u00e9centes de l\u2019Action GitHub, et faire tourner les secrets dans les journaux d\u2019ex\u00e9cution des workflows GitHub Actions. Ils devraient \u00e9galement envisager des alternatives \u00e0 GitHub Action.<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Par : Jeff Burt Une GitHub Action populaire utilis\u00e9e dans plus de 23 000 d\u00e9p\u00f4ts de code a \u00e9t\u00e9 compromise lors d\u2019une attaque [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":11760,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[130],"tags":[131],"class_list":["post-11759","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-devops-fr","tag-data-center-fr"],"_links":{"self":[{"href":"https:\/\/techhub.saworks.io\/fr\/wp-json\/wp\/v2\/posts\/11759"}],"collection":[{"href":"https:\/\/techhub.saworks.io\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/techhub.saworks.io\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/techhub.saworks.io\/fr\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/techhub.saworks.io\/fr\/wp-json\/wp\/v2\/comments?post=11759"}],"version-history":[{"count":0,"href":"https:\/\/techhub.saworks.io\/fr\/wp-json\/wp\/v2\/posts\/11759\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/techhub.saworks.io\/fr\/wp-json\/wp\/v2\/media\/11760"}],"wp:attachment":[{"href":"https:\/\/techhub.saworks.io\/fr\/wp-json\/wp\/v2\/media?parent=11759"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/techhub.saworks.io\/fr\/wp-json\/wp\/v2\/categories?post=11759"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/techhub.saworks.io\/fr\/wp-json\/wp\/v2\/tags?post=11759"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}