NixOS banaketan eta Nix pakete kudeatzailearen ekosisteman erabiltzen diren Nixpkgs pakete biltegira pull request-ak bidaltzean automatikoki deitzen diren GitHub Ekintzen kudeatzaileen ahultasunak agerian utzi dira. Ahultasunak baimenik gabeko erabiltzaile bati Nixpkgs-en ostatatutako pakete guztien iturburu-koderako irakurketa eta idazketa sarbidea ematen zion token bat ateratzea ahalbidetzen zuen. Token honek edozein pakete zuzenean aldatzea ahalbidetzen zuen proiektuaren Git biltegiaren bidez, berrikuspen eta onarpen prozesuak saihestuz.
Nixpkgs arriskuan jartzeko eta kode pertsonalizatua edozein paketetan txertatzeko gaitasuna segurtasun-ikertzaileek erakutsi zuten joan den urrian NixCon biltzarrean, eta berehala adabaki bat jarri zioten proiektuaren azpiegiturari. Hala ere, erasoaren xehetasunak urtebete geroago baino ez ziren ezagutarazi. Arazoa Nixpkgs GitHub biltegian GitHub Ekintzen kudeatzaileen erabilerarekin lotuta zegoen, "pull_request_target" gertaerara lotuta daudenak eta pull request berrietan egiaztapen automatikoak egiten dituztenak.
"pull_request" gertaera ez bezala, "pull_request_target"-eko kudeatzaileei irakurtzeko/idazteko sarbidea ematen zaie eraikuntza-ingurunera, eta horrek arreta berezia eskatzen du pull request batean pasatako datuekin lan egitean. "pull_request_target"-era lotutako kudeatzaileetako batek pull request-ean emandako "OWNERS" fitxategia balioztatu zuen codeowners-validator utilitatea eraiki eta deituz: urratsak: — erabilerak: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf honekin: ref: refs/pull/$/merge path: pr — exekutatu: nix-build base/ci -A codeownersValidator — exekutatu: result/bin/codeowners-validator env: OWNERS_FILE: pr/ci/OWNERS
Arazoa zen OWNERS fitxategia gaizki formateatzen bazen, codeowners-validator utilitateak gaizki eratutako katearen edukia erregistro estandar eta publikoki eskuragarrian bidaltzen zuela. Erasoa OWNERS izeneko esteka sinboliko bat jartzean zetzan pull request-ean, ".credentials" fitxategira seinalatuz, zeinak eraikuntza-ingurunean kredentzialak gordetzen dituen. Ondorioz, fitxategi hau prozesatzeak errore bat eragin zuen eta biltegirako sarbide-tokena zuen lehen lerroa erregistro publikoan bidaltzen zen.

Gainera, beste ahultasun bat aurkitu da editorconfig arauak egiaztatzen dituen kudeatzailean. urratsak: — izena: Aldatutako fitxategien zerrenda lortu PRtik exekutatu: gh api […] | jq [ … ] > «$HOME/changed_files» — erabilerak: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 honekin: ref: refs/pull/$/merge — izena: EditorConfig egiaztatzen exekutatu: cat «$HOME/changed_files» | xargs -r editorconfig-checker
Kasu honetan, arazoa "xargs" utilitatea erabiltzea zen editorconfig-checker eskaera bakoitzeko fitxategi bakoitzarekin exekutatzeko. Fitxategi-izenak ez zirenez balioztatu, erasotzaile batek karaktere bereziak dituen fitxategi bat sar zezakeen eskaeran, eta hauek komando-lerroko argumentu gisa prozesatuko lirateke editorconfig-checker exekutatzean. Adibidez, "--help" fitxategi bat sortzerakoan, editorconfig-checker-ek eskuragarri dauden aukeren inguruko aholku bat erakutsiko luke.
Iturria: opennet.ru
