Një dobësi në trajtuesin e GitHub Actions, që lejonte komprometimin e pakove në Nixpkgs.

Zbulohen detaje mbi vulnerabilitetet në procesorët e GitHub Actions, të aktivizuar automatikisht kur dërgoni kërkesa pull në depot e paketave Nixpkgs, të përdorura në shpërndarjen NixOS dhe në ekosistemin e lidhur me menaxherin e paketave Nix. Vulnerabiliteti lejonte një të palojë të nxjerrë një token që ofronte akses për të lexuar dhe shkruar në kodin burimor të gjitha paketave të vendosura në Nixpkgs. Ky token mund të lejonte ndryshime direkte në çdo paketë përmes depozitës Git të projektit, duke anashkaluar proceset e verifikimit dhe rishikimit të ndryshimeve.

Mundësia e komprometimit të Nixpkgs dhe zëvendësimit të kodit tuaj në çdo paketë u demonstruar nga kërkuesit e sigurisë në tetorin e kaluar në konferencën NixCon dhe u eliminua menjëherë në infrastrukturën e projektit. Megjithatë, detajet mbi sulmin janë zbuluar vetëm pas një viti. Problemi ishte i lidhur me përdorimin e procesorëve të GitHub Actions në depot Nixpkgs, të lidhura me ngjarjen "pull_request_target" që kryenin kontrollime automatike kur pranoheshin kërkesat pull të reja.

Ndryshe nga ngjarja "pull_request", nĂ« "pull_request_target" procesorĂ«t kanĂ« akses pĂ«r tĂ« lexuar dhe shkruar nĂ« mjedisin e ndĂ«rtimit, e cila kĂ«rkon vĂ«mendje tĂ« veçantĂ« kur punoni me tĂ« dhĂ«nat e dĂ«rguara nĂ« kĂ«rkesĂ«n pull. NĂ« njĂ« nga procesorĂ«t e lidhur me "pull_request_target" u krye kontrolli i skedarit "OWNERS" tĂ« pĂ«rfshirĂ« nĂ« kĂ«rkesĂ«n pull, pĂ«r tĂ« cilin u grumbullua dhe u thirr utilita codeowners-validator: steps: — uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf with: ref: refs/pull/$/merge path: pr — run: nix-build base/ci -A codeownersValidator — run: result/bin/codeowners-validator env: OWNERS_FILE: pr/ci/OWNERS

Problemi ishte se në rast të një gabimi në formatimin e skedarit OWNERS, utilita codeowners-validator publikonte përmbajtjen e rreshtit të paformatizuar në regjistrin standard, të disponueshëm publikisht. Sulmi përfshinte vendosjen në kërkesën pull të një lidhje simbolike me emrin OWNERS, që referohej në skedarin ".credentials", në të cilin vendosen kredencialet në mjedisin e ndërtimit. Sipas kësaj, përpunimi i këtij skedari çoi në një gabim dhe në publikimin në regjistrin publik të rreshtit të parë, që përmbante token e aksesit në depo.

Një dobësi në trajtuesin e GitHub Actions, që lejonte komprometimin e pakove në Nixpkgs.

PĂ«r mĂ« tepĂ«r, u zbulua njĂ« tjetĂ«r vulnerabilitet nĂ« procesorin qĂ« kryen kontrollin e rregullave editorconfig. steps: — name: Merr njĂ« listĂ« tĂ« skedarĂ«ve tĂ« ndryshuar nga PR run: gh api [
] | jq [ 
 ] > "$HOME/changed_files" — uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 with: ref: refs/pull/$/merge — name: Kontrollimi i EditorConfig run: cat "$HOME/changed_files" | xargs -r editorconfig-checker

Në këtë rast, problemi ishte përdorimi i utilit "xargs" për të ekzekutuar programin editorconfig-checker me çdo skedar nga kërkesa pull. Duke mos u verifikuar emrat e skedareve për korrektësi, sulmuesi mund të vendoste në kërkesën pull një skedar me simbole speciale, të cilat do të përpunoheshin gjatë ekzekutimit të utilit editorconfig-checker si argumente të linjës së komandës. Për shembull, duke krijuar një skedar "--help", utilita editorconfig-checker do të jepte ndihmën për opsionet që ishin të disponueshme.

Burimi: opennet.ru

Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« đŸ”„ Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« | ProHoster