Googles Project Zero avslöjar detaljer om säkerhetsfel med hög svårighetsgrad med Microsofts GitHub

0 Shares

GitHub

Säkerhetsproblem exponeras ofta av Googles Project Zero; bara några dagar sedan avslöjade säkerhetsforskare detaljer om ett aktivt utnyttjat säkerhetsfel i Windows Kernel Cryptography Driver.

Nu har Project Zero släppt detaljer om ett allvarligt säkerhetsfel i ett annat Microsoft-företag – GitHub. Felet relaterar till GitHub Actions arbetsflödeskommandon och beskrivs som hög svårighetsgrad. Det upptäcktes redan i juli, men enligt den normala 90-dagars avslöjandeperioden offentliggörs detaljerna just nu.

Se även:

När vi går in på detalj på Project Zero-webbplatsen förklarar säkerhetsforskaren som upptäckte bristen – Felix Wilhelm -: “Github Actions stöder en funktion som kallas arbetsflödeskommandon (https://docs.github.com/en/actions/reference / workflow-commands-for-github-actions) som en kommunikationskanal mellan Action runner och den utförda åtgärden. Workflow-kommandon implementeras i runner / src / Runner.Worker / ActionCommandManager.cs (https://github.com/actions /runner/blob/0921af735a3c8fb6cf22ddc8a868b742816e24cf/src/Runner.Worker/ActionCommandManager.cs) och arbeta genom att analysera STDOUT av alla utförda åtgärder som letar efter en av två kommandomarkörer “.

Han fortsätter med att förklara:

V2-kommandon måste börja i början av en rad och se ut så här “:: workflow-command parameter1 = {data}, parameter2 = {data} :: {command value}”. V1-kommandon kan också börja mitt på en rad och ha följande syntax: “##[command parameter1=data;]command-value “. Den nuvarande versionen av Github action runner stöder ett litet antal olika kommandon men den mest intressanta ur ett säkerhetsperspektiv är” set-env “. Som namnet antyder kan” set-env “användas för att definiera godtyckliga miljövariabler som en del av ett arbetsflödessteg. Ett enkelt exempel (i V1-syntax) skulle vara ##[set-env name=VERSION;]alfa, vilket placerar VERSION = alfa i miljön i alla efterföljande steg i ett arbetsflöde.

Det stora problemet med den här funktionen är att den är mycket sårbar för injektionsattacker. När löpprocessen analyserar varje rad som skrivs ut till STDOUT och letar efter arbetsflödeskommandon, är varje Github-åtgärd som skriver ut otillförlitligt innehåll som en del av dess körning sårbar. I de flesta fall resulterar möjligheten att ställa in godtyckliga miljövariabler i fjärrkörning av kod så snart ett annat arbetsflöde körs.

Att ta itu med problemet kommer inte att bli enkelt eftersom det skulle kräva en fullständig omprövning av hur arbetsflödeskommandot fungerar. Microsoft har dock publicerat en rådgivning som berättar för användare hur man uppdaterar arbetsflöden.

Bildkredit: Piotr Swat / Shutterstock

0 Shares