GitHub darbību apstrādātāja ievainojamība ļāva apdraudēt Nixpkgs pakotnes.

Ir atklātas GitHub darbību apstrādātāju ievainojamības, kas tiek automātiski izsauktas, iesniedzot pieprasījumus Nixpkgs pakotņu repozitorijam, ko izmanto NixOS izplatījumā un Nix pakotņu pārvaldnieka ekosistēmā. Ievainojamība ļāva neautorizētam lietotājam iegūt marķieri, kas piešķir lasīšanas un rakstīšanas piekļuvi visu Nixpkgs mitināto pakotņu pirmkodam. Šis marķieris ļāva tieši modificēt jebkuru pakotni, izmantojot projekta Git repozitoriju, apejot pārskatīšanas un apstiprināšanas procesus.

Iespēju kompromitēt Nixpkgs un jebkurā pakotnē ievietot pielāgotu kodu drošības pētnieki demonstrēja pagājušā gada oktobrī NixCon konferencē, un šī iespēja nekavējoties tika ielāpota projekta infrastruktūrā. Tomēr sīkāka informācija par uzbrukumu tika atklāta tikai gadu vēlāk. Problēma bija saistīta ar GitHub darbību apstrādātāju izmantošanu Nixpkgs GitHub repozitorijā, kas ir saistīti ar notikumu "pull_request_target" un veic automātiskas pārbaudes jauniem pieprasījumiem.

Atšķirībā no notikuma "pull_request", apstrādātājiem "pull_request_target" tiek piešķirta lasīšanas/rakstīšanas piekļuve veidošanas videi, kas prasa īpašu piesardzību, strādājot ar datiem, kas nodoti izvilkšanas pieprasījumā. Viens no apstrādātājiem, kas saistīts ar "pull_request_target", validēja izvilkšanas pieprasījumā norādīto failu "OWNERS", izveidojot un izsaucot utilītu codeowners-validator: darbības: — izmanto: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf ar: ref: refs/pull/$/merge path: pr — run: nix-build base/ci -A codeownersValidator — run: result/bin/codeowners-validator env: OWNERS_FILE: pr/ci/OWNERS

Problēma bija tā, ka, ja OWNERS fails bija formatēts nepareizi, codeowners-validator utilīta izvadīja nepareizi veidotās virknes saturu standarta, publiski pieejamā žurnālā. Uzbrukums sastāvēja no simboliskas saites ar nosaukumu OWNERS ievietošanas pieprasījumā, kas norāda uz failu ".credentials", kurā tiek glabāti akreditācijas dati būvēšanas vidē. Tā rezultātā šī faila apstrāde izraisīja kļūdu, un pirmā rinda, kurā bija repozitorija piekļuves marķieris, tika izvadīta publiskajā žurnālā.

 GitHub darbību apstrādātāja ievainojamība ļāva apdraudēt Nixpkgs pakotnes.

Turklāt apstrādātājā, kas pārbauda editorconfig noteikumus, tika atrasta vēl viena ievainojamība. soļi: — name: Iegūt mainīto failu sarakstu no PR run: gh api […] | jq [ … ] > «$HOME/changed_files» — uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 with: ref: refs/pull/$/merge — name: Pārbauda redaktora konfigurāciju run: cat «$HOME/changed_files» | xargs -r editorconfig-checker

Šajā gadījumā problēma bija utilītas "xargs" izmantošana, lai palaistu editorconfig-checker ar katru failu pieprasījumā. Tā kā failu nosaukumi netika validēti, uzbrucējs pieprasījumā varēja iekļaut failu, kas satur speciālās rakstzīmes, kuras, palaižot editorconfig-checker, tiktu apstrādātas kā komandrindas argumenti. Piemēram, veidojot failu "--help", editorconfig-checker parādītu norādi par pieejamajām opcijām.

Avots: opennet.ru

Iegādājieties uzticamu mitināšanu vietnēm ar DDoS aizsardzību, VPS VDS serveriem 🔥 Iegādājieties uzticamu tīmekļa vietņu mitināšanu ar DDoS aizsardzību, VPS VDS serveriem | ProHoster