De beheerders van de Rust-programmeertaal hebben een beveiligingsupdate uitgebracht voor een zeer ernstige kwetsbaarheid die door een kwaadwillende partij zou kunnen worden misbruikt om op ongeoorloofde wijze bestanden en mappen van een kwetsbaar systeem te verwijderen.
“Een aanvaller kan dit beveiligingsprobleem gebruiken om een bevoorrecht programma te misleiden tot het verwijderen van bestanden en mappen die de aanvaller anders niet zou kunnen openen of verwijderen”, zegt de Rust Security Response-werkgroep (WG) zei in een adviserend gepubliceerd op 20 januari 2021.
Rust 1.0.0 tot en met Rust 1.58.0 wordt getroffen door dit beveiligingslek. De fout, die wordt gevolgd als CVE-2022-21658 (CVSS-score: 7,3), is toegeschreven aan beveiligingsonderzoeker Hans Kratz, waarbij het team een Roest versie 1.58.1 vorige week verzonden.
Het probleem komt met name voort uit een onjuist geïmplementeerde controle om recursieve verwijdering van symbolische links (ook bekend als symbolische koppelingen) in een standaard bibliotheekfunctie genaamd “std::fs::remove_dir_all.” Dit resulteert in een race conditiedie op zijn beurt op betrouwbare wijze kan worden uitgebuit door een tegenstander door hun toegang tot een bevoorrecht programma te misbruiken om gevoelige mappen te verwijderen.
“In plaats van het systeem te vertellen geen symlinks te volgen, controleerde de standaardbibliotheek eerst of het ding dat het ging verwijderen een symlink was, en anders zou het doorgaan met het recursief verwijderen van de map”, aldus het adviesbureau. “Dit bracht een raceconditie aan het licht: een aanvaller zou een map kunnen maken en deze kunnen vervangen door een symbolische link tussen de controle en de daadwerkelijke verwijdering.”
Rust, hoewel het geen veelgebruikte programmeertaal is, is de afgelopen jaren getuige geweest van een toename in acceptatie vanwege zijn geheugengerelateerde veiligheidsgaranties. Vorig jaar kondigde Google aan dat zijn open-sourceversie van het Android-besturingssysteem ondersteuning voor de programmeertaal zal toevoegen om fouten in het geheugen te voorkomen.