Project Zero lëshoi detaje për një shkelje serioze të sigurisë në GitHub dhe ata raportojnë se gabimi ndikon në komandat e rrjedhës së punës së veprimit nga GitHub dhe përshkruhet si ashpërsi e lartë. (Ky defekt u zbulua në korrik, por bazuar në periudhën standarde të zbulimit 90-ditor, detajet janë lëshuar vetëm tani.)
Kjo e metë u bë një nga dobësitë e pakta që nuk u rregullua siç duhet përpara skadimit të afatit standard 90-ditor të dhënë nga Google Project Zero.
Sipas Felix Wilhelm (i cili e zbuloi atë), anëtar i ekipit Project Zero, e meta ndikon në funksionin e veprimeve të GitHub, një mjet për të automatizuar punën e zhvilluesve. Kjo sepse komandat e rrjedhës së punës Actions janë "të prekshme nga sulmet e injektimit":
“Actions Github mbështet një veçori të quajtur komandat e rrjedhës së punës si një kanal komunikimi midis ndërmjetësit të veprimit dhe veprimit të ekzekutuar. Komandat e rrjedhës së punës zbatohen në / src / Runner.Worker / ActionCommandManager.cs dhe funksionon duke analizuar STDOUT të të gjitha veprimeve të kryera duke kërkuar një nga dy shënuesit e komandave.
Përmendni atë problemi i madh me këtë veçori është se është shumë i prekshëm nga sulmet me injeksion. Për shkak se procesi i ekzekutimit skanon çdo rresht të shtypur në STDOUT për komandat e rrjedhës së punës, çdo veprim i GitHub që përmban përmbajtje jo të besueshme si pjesë e ekzekutimit të tij është i prekshëm.
Në shumicën e rasteve, aftësia për të vendosur variabla arbitrarë të mjedisit rezulton në ekzekutimin e kodit në distancë sa më shpejt që një rrjedhë tjetër e punës po ekzekutohet. Kam kaluar ca kohë duke parë depot e njohura të GitHub dhe pothuajse çdo projekt që përdor veprime paksa komplekse të GitHub është i prekshëm nga ky lloj i të metës.
më pas, dha disa shembuj sesi mund të shfrytëzohej bug dhe gjithashtu sugjeroi një zgjidhje:
“Në të vërtetë nuk jam i sigurt se cila është mënyra më e mirë për ta rregulluar atë. Unë mendoj se mënyra se si zbatohen komandat e punës është në thelb e pasigurt. Amortizimi i sintaksës së komandës v1 dhe forcimi i inxhinierisë me një listë të lejuar ndoshta do të funksiononte kundër vektorëve të drejtpërdrejtë të RCE.
“Sidoqoftë, edhe aftësia për të mbivendosur variablat e mjedisit 'normal' të përdorur në hapat e mëvonshëm është ndoshta e mjaftueshme për të shfrytëzuar veprimet më komplekse. As nuk kam analizuar ndikimin e sigurisë së kontrolleve të tjera në hapësirën e punës.
Nga ana tjetër, përmend se një zgjidhje e mirë afatgjatë do të ishte zhvendosja e komandave të rrjedhës së punës në një kanal të veçantë (p.sh. një përshkrues i ri i skedarit) për të shmangur analizimin nga STDOUT, por kjo do të thyejë shumë kod ekzistues të veprimit.
Sa i përket GitHub, zhvilluesit e tij postuan një këshillim më 1 tetor dhe zhvlerësuan komandat e prekshme, por argumentuan se ajo që Wilhelm gjeti ishte në fakt një "dobësi e moderuar e sigurisë". GitHub caktoi identifikuesin e defekteve në kod CVE-2020-15228:
“Një dobësi e moderuar e sigurisë është identifikuar në kohën e duhur të veprimeve të GitHub që mund të lejojë injektimin e shtigjeve dhe variablave të mjedisit në rrjedhat e punës që regjistrojnë të dhëna të pasigurta në STDOUT. Kjo mund të çojë në prezantimin ose modifikimin e variablave të mjedisit pa qëllimin e autorit të rrjedhës së punës.
“Për të na ndihmuar në zgjidhjen e këtij problemi dhe për t'ju lejuar të vendosni dinamikisht variablat e mjedisit, ne kemi prezantuar një grup të ri skedarësh për të trajtuar azhurnimet e mjedisit dhe rrugëve në rrjedhat e punës.
“Nëse po përdorni ndërmjetës të vetë-pritur, sigurohuni që ata të azhurnohen në versionin 2.273.1 ose më të ri.
Sipas Wilhelm, më 12 Tetor, Project Zero kontaktoi GitHub dhe në mënyrë aktive u ofroi atyre një dritare 14-ditore nëse GitHub dëshironte më shumë kohë për të çaktivizuar komandat e prekshme. Sigurisht, oferta u pranua dhe GitHub shpresonte të çaktivizonte komandat e pambrojtura pas 19 Tetorit. Project Zero më pas vendosi datën e re të zbulimit për 2 Nëntorin.
Fuente: https://bugs.chromium.org