Veikleiki í GitHub Actions meðhöndluninni gerði það að verkum að pakkar í Nixpkgs voru í hættu.

Veikleikar í GitHub Actions handlers, sem eru sjálfkrafa kallaðir fram þegar beiðnir um að senda inn hugbúnað til Nixpkgs pakkageymslunnar, sem notuð er í NixOS dreifingunni og Nix pakkastjórnunarkerfinu, hafa verið afhjúpaðir. Veikleikinn gerði óviðkomandi notanda kleift að draga út tákn sem veitti les- og skrifaðgang að frumkóða allra pakka sem hýstir eru í Nixpkgs. Þetta tákn gerði kleift að breyta hvaða pakka sem er beint í gegnum Git geymslu verkefnisins, án þess að þurfa að fara framhjá yfirferðar- og samþykktarferlunum.

Öryggisrannsakendur sýndu fram á möguleikann á að brjótast inn í Nixpkgs og setja sérsniðinn kóða inn í hvaða pakka sem er af öryggissérfræðingum í október síðastliðnum á NixCon ráðstefnunni og var strax lagað í innviðum verkefnisins. Hins vegar voru upplýsingar um árásina ekki birtar fyrr en ári síðar. Vandamálið tengdist notkun á GitHub Actions meðhöndlurum í GitHub geymslunni í Nixpkgs, sem eru bundnar við „pull_request_target“ atburðinn og framkvæma sjálfvirkar athuganir við nýjar pull-beiðnir.

Ólíkt „pull_request“ atburðinum fá meðhöndlunaraðilar í „pull_request_target“ les-/skrifaðgang að byggingarumhverfinu, sem krefst sérstakrar varúðar þegar unnið er með gögn sem send eru í pull-beiðni. Einn af meðhöndlunaraðilunum sem eru bundnir við „pull_request_target“ staðfesti „OWNERS“ skrána sem var gefin í pull-beiðninni með því að smíða og kalla á codeowners-validator gagnið: skref: — notar: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf með: ref: refs/pull/$/merge path: pr — keyrsla: nix-build base/ci -A codeownersValidator — keyrsla: result/bin/codeowners-validator env: OWNERS_FILE: pr/ci/OWNERS

Vandamálið var að ef OWNERS skráin var rangt sniðin, þá sendi codeowners-validator gagnið innihald gallaða strengsins út í staðlaða, opinberlega aðgengilega skrá. Árásin fólst í því að setja táknrænan tengil sem heitir OWNERS í beiðnina, sem vísaði á skrána ".credentials", sem geymir innskráningarupplýsingar í byggingarumhverfinu. Þar af leiðandi leiddi vinnsla þessarar skráar til villu og fyrsta línan, sem innihélt aðgangskóðann að geymslunni, var send út í opinberu skrána.

 Veikleiki í GitHub Actions meðhöndluninni gerði það að verkum að pakkar í Nixpkgs voru í hættu.

Að auki fannst önnur veikleiki í meðhöndluninni sem athugar reglur editorconfig. skref: — nafn: Sækja lista yfir breyttar skrár úr PR keyrsla: gh api […] | jq [ … ] > «$HOME/changed_files» — notar: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 með: tilvísun: refs/pull/$/merge — nafn: Athugar EditorConfig keyrsla: cat «$HOME/changed_files» | xargs -r editorconfig-checker

Í þessu tilviki var vandamálið notkun „xargs“ gagnseminnar til að keyra editorconfig-checker með hverri skrá í pull-beiðninni. Þar sem skráarnöfn voru ekki staðfest gæti árásaraðili bætt við skrá sem inniheldur sérstafi í pull-beiðninni, sem yrði unnin sem skipanalínubreytur þegar editorconfig-checker var keyrð. Til dæmis, þegar „--help“ skrá var búin til, myndi editorconfig-checker sýna vísbendingu um tiltæka valkosti.

Heimild: opennet.ru

Bæta við athugasemd