Kritiska rostfel utgör exploateringshot i specifika Windows-användningsfall

Kritiska rostfel utgör exploateringshot i specifika Windows-användningsfall

Critical Rust Flaw Poses Exploit Threat in Specific Windows Use Cases PlatoBlockchain Data Intelligence. Vertical Search. Ai.

The Rust Project har utfärdat en uppdatering för sitt standardbibliotek, efter att en sårbarhetsforskare upptäckte att en specifik funktion som används för att köra batchfiler på Windows-system kunde utnyttjas med hjälp av ett injektionsfel.

Uppsättningen av vanliga funktioner som ingår i Rust-programmeringsspråket, känt som standardbiblioteket, erbjuder möjligheten – bland dess många andra funktioner – att köra Windows-batchfiler via Command API. Funktionen bearbetade dock inte indata till API:t tillräckligt rigoröst för att eliminera möjligheten att injicera kod i exekveringen, enligt en rådgivande arbetsgrupp för Rust Security Response publicerad 9 april.

Även om Rust är välkänt för sina minnessäkerhetsfunktioner, understryker incidenten att programmeringsspråket inte är bevis mot logiska buggar, säger Yair Mizrahi, senior sårbarhetsforskare på applikationssäkerhetsföretaget JFrog.

"Sammantaget är Rusts minnessäkerhet en anmärkningsvärd fördel, men utvecklare måste också vara mycket uppmärksamma på potentialen för logiska buggar för att säkerställa den övergripande säkerheten och tillförlitligheten för deras Rust-baserade applikationer", säger han. "För att lösa sådana logiska problem uppmuntrar Rust en rigorös test- och kodgranskningsprocess, såväl som användningen av statiska analysverktyg för att identifiera och mildra logiska buggar."

Rust har fått rykte om sig att vara ett mycket säkert programmeringsspråk, eftersom det inte lämnar applikationer öppna för den ofta allvarliga klassen av brister som kallas minnessäkerhetssårbarheter. Google har tillskrivit en minskning av minnesosäker kod till övergången till minnessäkra språk, som Rust och Kotlin, medan Microsoft upptäckte att fram till 2018, när det gick över till minnessäkra språk, kom sådana sårbarheter regelbundet stod för 70 % av alla säkerhetsfrågor.

Windows ställer till ett antal problem

Det senaste problemet är inte en minnessäkerhetssårbarhet, utan ett problem med logiken som används för att bearbeta otillförlitlig indata. En del av Rusts standardbibliotek låter utvecklaren anropa en funktion för att skicka en batchfil till Windows-maskinen för bearbetning. Det finns skäl att skicka in kod till värden som en batchfil, säger Joel Marcey, teknikchef på Rust Foundation, som stödjer programmeringsspråkets underhållare och Rust-ekosystemet.

"Batchfiler körs av många anledningar på system, och Rust tillhandahåller ett API så att du kan exekvera dem ganska enkelt", säger han. "Så även om detta inte nödvändigtvis är det vanligaste användningsfallet för Rust, tillät API, innan den fixade patchen implementerades, för illvilliga aktörer att teoretiskt ta över ditt system genom att köra godtyckliga kommandon, och detta är definitivt en kritisk sårbarhet."

Vanligtvis kan en utvecklare vidarebefordra en arbetsbelastning till Windows-värden för att exekveras som en batchprocess genom programmeringsgränssnittet Command Applications (API), en del av standardbiblioteket. Vanligtvis garanterar Rust säkerheten för alla anrop till Command API, men i det här fallet kunde Rust Project inte hitta ett sätt att förhindra exekvering av alla argument, främst för att Windows inte följer någon form av standard, och att API kan tillåta en angripare att skicka in kod som sedan skulle köras.

"Tyvärr rapporterades det att vår flyktlogik inte var tillräckligt noggrann, och det var möjligt att skicka skadliga argument som skulle resultera i godtycklig exekvering av skal", enligt Rust Security Response WG.

Rust Project visar sig vara lyhörd

Även om det kan vara en huvudvärk att hantera en sårbarhet, har Rust Project visat att gruppen snabbt löser problem, säger experter. Standardbibliotekets sårbarhet, CVE-2024-24576, är i slutändan ett problem med Windows batch-bearbetningsproblem och påverkar andra programmeringsspråk, om de inte korrekt analyserar argumenten som skickas till Windows batchprocess. Rustprojektet verkar vara först ut genom dörren med en fix för att skicka argument till Windows CMD.exe-processen, säger JFrogs Mizrahi.

Grupperna kunde inte helt eliminera problemet, men Command API kommer inte att returnera ett fel när eventuella tillägg som skickas till funktionen kan vara osäkra, sa Rust Project. 

JFrog's Mizrahi uppmanar Rust att bredda sin användning av statisk applikationssäkerhetstestning och utöka användningen av fuzzing och dynamisk testning.

"Sammantaget är Rust på rätt väg genom att betona minnessäkerhet och uppmuntra rigorösa testpraxis", säger han. "Att kombinera dessa ansträngningar med fortsatta framsteg inom statisk analys och fuzzing kan hjälpa Rust-gemenskapen och den bredare mjukvaruindustrin att göra betydande framsteg när det gäller att åtgärda logiska buggar och indatavalideringsbrister under de kommande åren."

Tidsstämpel:

Mer från Mörk läsning