tj-actions/changed-files - CVE-2025-30066 - leynileg leki

CVE-2025-30066: Þegar tj-actions/changed-files leiðir til leka á leynilegum gögnum

Leki leyndarmála snýst ekki alltaf um slæman kóða eða viðkvæm bókasöfn. Stundum snýst það um hvernig við stjórnum leyndarmálum meðan á keyrslum CI stendur, og CVE-2025-30066 er kennslubókardæmi um hvernig það getur farið úrskeiðis. GitHub aðgerðin tj-actions/changed-files, sem er mikið notuð til að greina breyttar skrár í pull requests, varð þögull rás fyrir leyndarmál. Þetta gerðist og hvernig þú getur læst CI/CD leyndarmál pipeline.

Hvað gerðist í CVE-2025-30066?

Um miðjan mars 2025 var tj-actions/changed-files brotist inn. Árásarmaðurinn endurskrifaði núverandi útgáfumerki (allt að v45.0.7) til að benda á illgjarn hugbúnað. commitÞetta breytti hegðun aðgerðarinnar án þess að forritarar tóku eftir því; engin ný útgáfa var gefin út, bara ósýnileg breyting á merkjum.

Notkunin var einföld en hættuleg: hún dró upp fjarlægt Base64-kóðað Python forskrift sem skannaði minni keyrsluforritsins í leit að innskráningarupplýsingum, dró þær inn í skrár eða tók þær út. Þetta var ekki rökréttur kóðagalli í tj-actions/changed-files; þetta var misnotkun á því hvernig leki í leynilegum kerfum getur átt sér stað innan CI vinnuflæðis með því að nota þessa endurnýtanlegu aðgerð. CVE-2025-30066 snerist ekki um yfirflæði í biðminni; þetta snerist um hönnunargalla í CI sem gerði leynilegum kerfum kleift að leka.

Áhrif: Öll geymslur sem nota viðkomandi útgáfur af tj-actions/changed-files voru í hættu á leka leynilegra gagna, sérstaklega ef viðkvæm tákn eða skrár voru meðhöndlaðar á óöruggan hátt í skráarmynstrum eða CI-úttaki.

Af hverju þetta hefur áhrif á verkflæði sem treysta á endurnýtanlegar aðgerðir

DevSecOps vinnuflæði treysta mjög á tj-actions/changed-files til að:

  • Sjálfvirkan pull request eftirlit
  • Greinið breyttar skrár í tilteknum slóðum
  • Forðastu óþarfa CI störf

En þessi vinnuflæði gleyma oft einu: hvernig glob-mynstur geta innihaldið viðkvæmar upplýsingar. Forritarar gera ráð fyrir að tj-actions/changed-files hegði sér örugglega sjálfgefið. Hins vegar, ef þú glob... stillingar/** og leyndarmál eru geymd í stillingar/leyndarmál.umhverfi, þú bættir rétt í þessu leyniskrá við CI úttak eða skrár. Þetta er ekki villa í aðgerðinni; þetta er CI/CD Hönnunargalla sem leiðir til leka í leynilegum gögnum. CVE-2025-30066 er skýrt dæmi um þetta.

Hvernig leynileki varð til (sundurliðun varnarleysis)

Við skulum skoða kjarnabilunina á bak við CVE-2025-30066:

  • Kúlulaga mynstur eins og **/*.umslag samsvörun við leyniskrár óvart
  • tj-actions/changed-files meðhöndluðu þessi leyndarmál sem breyttar skrár
  • Leyndarmál lentu í skrefúttaki, skrám eða niðurstreymisverkum

Þetta gerðist vegna þess að leyndarmál voru geymd í útgáfustýrðum slóðum (slæm hugmynd) og CI stillingin útilokaði þau ekki sérstaklega frá globbing (líka slæmt). Þannig að þetta er ekki kóðavilla, heldur léleg hönnun CI sem veldur leka leyndarmála með úttaki tj-actions/changed-files.

Hagnýt nýtingarleið: Frá CI starfi til afhjúpunar á vottorðum

Dæmi um CI uppsetningu sem olli leka leynilegra upplýsinga í gegnum tj-aðgerðir/breyttar skrár:

yaml jobs:   detect_changes:     runs‑on: ubuntu‑latest     steps:       ‑ uses: actions/checkout@v3       ‑ name: Check changed files         id: changed         uses: tj‑actions/changed‑files@v45         with:           files: configs/** 

If stillingar/leyndarmál.umhverfi breytt:

  • Það var flaggað af tj-actions/changed-files
  • Það varð hluti af skref.breytt.úttak.allar_breyttar_skrár
  • Síðari skref skráðu það eða sendu það til forskrifta, sem leiddi til leka á leyndarmálum

Þessi leki varð vegna þess að CI-rökfræði meðhöndlaði leyndarmál eins og venjulegar skrár. Það er þar sem lekinn í leyndarmálinu byrjar, ekki vegna yfirflæðis í biðminni, heldur misnotkunar á tj-aðgerðum/breyttum skrám í gallaðri CI-hönnun.

Fjölgun á sér stað með úttaki eins og:

yaml ‑ name: Use changed file list   run: echo "Changed files: ${{ steps.changed.outputs.all_changed_files }}" 

If leyndarmál.umhverfi er á þeim lista, gæti skráarnafn hans og hugsanlega innihald birst í byggingarskrám. Jafnvel skilyrt rökfræði eins og:

yaml if: contains(steps.changed.outputs.all_changed_files, 'secrets.env') 

Getur afhjúpað viðkvæma gripi. Þetta er CI/CD Hönnunarbilun sem leyfir leka leynilegs efnis, ekki galli í aðgerðakóðanum.

Hvernig á að nota endurnýtanleg vinnuflæði á öruggan hátt og koma í veg fyrir leka

Þú þarft ekki að hætta að nota tj-actions/changed-files. Þú ættir að nota endurnýtanlegar aðgerðir með leyndarmál í huga:

Bestu starfsvenjur við meðhöndlun leyndarmála

  • Ekki nota leyndarmál útgáfustýringar, aldrei
  • Forðastu glob-mynstur sem passa við viðkvæmar slóðir
  • Nota umhverfisbundin leyndarmál (GITHUB_ENV, vaults, GitHub Secrets)

CI/CD Stillingar Guardrails

  • Festið alltaf aðgerðir við óbreytanleg SHA, ekki merki (notið aldrei @v45)
  • Meðhöndla úttak tj-actions/changed-files sem spillt, hreinsa það eða sía það
  • Setja úttak aðeins ef það er hreinsað

⚠️ Óöruggt dæmi:

yaml jobs:   detect_changes:     runs‑on: ubuntu‑latest     steps:       ‑ uses: actions/checkout@v3       ‑ name: Detect all changes         id: changed         uses: tj‑actions/changed‑files@v45         with:           files: '**/*'  # ⚠️ This glob includes secrets.env, which may leak credentials 

Þetta er einmitt misnotkunin sem liggur að baki leka leka og CVE-2025-30066.

Öruggur valkostur:

yaml jobs:   detect_changes:     runs‑on: ubuntu‑latest     steps:       ‑ uses: actions/checkout@v3       ‑ name: Detect non‑sensitive file changes         id: changed         uses: tj‑actions/changed‑files@<SHA>  # pinned to SHA         with:           files: 'src/**'           files‑ignore: '**/secrets.env'  # ⚠️ Excludes secret file 

Með því að gera þetta forðast þú að CI/CD Hönnunarbilun sem leiðir til leka á leyniupplýsingum í gegnum tj-aðgerðir/breyttar skrár.

Að auki:

  • Slökkva á eða takmarka skráningu þar sem leyndarmál gætu birst
  • Notaðu leynilegar grímuaðgerðir GitHub
  • Takmarka aðgang að byggingarskrám og gripum

Gátlisti fyrir fljótleg leyndarmál - örugg notkun CI

Besta æfingin
Ekki geyma leyndarmál í útgáfustýrðum skrám
Notaðu hvelfingar eða GitHub Secrets fyrir innskráningarupplýsingar
Festa alltaf tj-aðgerðir/breyttar skrár við óbreytanleg SHA-gögn
Sía eða hreinsa úttak úr tj-aðgerðum/breyttum skrám
Aldrei taka með leynilegar slóðir í glob-mynstrum
Gríma eða takmarka skrár sem gætu afhjúpað viðkvæmar upplýsingar
Endurskoða oft erfða CI stillingar

Hlutverk Xygeni: Framfylgd leyndarmála upplýsingakerfa í stórum stíl

Xygeni tryggir CI/CD pipelinemeð því að einbeita sér að hvernig leyndarmál eru meðhöndluð, notuð og afhjúpuð í raunveruleikanum DevOps vinnuflæði. Þetta snýst ekki bara um að skanna kóða; þetta snýst um að framfylgja bestu starfsvenjum í leynilegri stjórnun í gegnum lifandi kerfi. pipeline greiningu.

Óörugg notkunargreining á úttaki

  • Skannar GitHub aðgerðir til notkunar á bergmál, keyra og gefur út þar sem ${{ skref.*.úttak.* }} gæti innihaldið viðkvæm gildi
  • Greinir hvenær vísað er til leyndarmála eða þau prentuð beint, af ásettu ráði eða fyrir mistök.

Eftirlit með lekum leyndarmálum

  • Greinir gildi með háu óreiðu (API-lykla, tákn) í skrám og skrefúttaki
  • Kveikir á viðvörunum þegar leyndarmál birtast í pipeline skrár, jafnvel þótt þær séu duldar niðurstreymis

Rangstillt aðgerðanotkun

  • Fylgist með öllum GitHub aðgerðum á öllum pipelinetil að greina notkun á útgáfum sem hafa verið skemmdar (t.d. tj-aðgerðir/breytt-skrár@v45)
  • Endurskoðar skráarsamsvörunarmynstur sem innihalda hugsanleg leyndarmál eins og **/*.umslag, *.lykill eða .umslag.*

Stefnubundin CI Guardrails

  • Framfylgir SHA-festingu fyrir aðgerðir þriðja aðila
  • Lokar fyrir notkun óöruggra skráarklumpa sem gætu sópað leyndarmálum inn í skrár
  • Kemur í veg fyrir pipelinefrá því að gefa út viðkvæm gildi sem hluta af úttaki verkflæðis

Með því að meðhöndla vinnuflæði sem hluta af ógnunarsvæðinu þínu tryggir Xygeni að leynileg hreinlæti sé ekki bara besta starfshættir, heldur innbyggð vörn.

Niðurstaða: Leynileg leki getur byrjað með einföldum aðgerðum, misnotkun

CVE-2025-30066 var ekki galli í bókasafni; það var CI/CD Hönnunarbilun sem stafar af óviðeigandi notkun á tj-aðgerðum/breyttum skrám. Það sem DevSecOps teymi ættu að læra:

  • Meðhöndlið allar tilvísanir í glob/skrá í CI sem hugsanlegan lekapunkt
  • Gerðu reglulega úttekt á vinnuflæði til að finna út hvort leyndarmál séu óvart innifalin
  • Notið örugg geymslur eða leyndarmál umhverfisins, skráið aldrei leyndarmál inn í útgáfustýringu.
  • Hreinsa eða sía öll úttak verkflæðis
  • Skrá viðkvæma verkflæðisvirkni til að viðhalda endurskoðunarhæfni

CI er kóði. Verkflæði eru kóði. Skrár og úttak eru kóði. Gættu leyndarmála þinna í hverju skrefi, eða hættaðu á leyndarmálsleka sem þarfnast ekki tölvuþrjóta, bara slæms. CI/CD hönnunarval.

sca-tools-hugbúnaður-samsetningargreiningartól
Forgangsraðaðu, lagfærðu og tryggðu hugbúnaðaráhættu þína
Fáðu þér ókeypis aðgang.
Ekkert kreditkort krafist.

Tryggðu hugbúnaðarþróun og afhendingu þína

með Xygeni vörupakkanum