Dana 9. travnja 2024. godine, tvrtka Rust Security Response WG izdala je sigurnosno upozorenje u vezi kritične ranjivosti u Rust programskom okruženju na Windows platformama. Ova greška omogućava napade umetanja naredbi (engl. command injection attacks) putem izvršavanja posebno oblikovanih batch datoteka s nepouzdanim argumentima.
Daljnjom analizom utvrđeno je kako su navedenom ranjivosti zahvaćeni i drugi programski jezici unutar Microsoft Windows okoline programskih jezika.
Preporučuje se žurno ažuriranje, prioritizirajući resurse čiji kôd (ili jedan od njegovih modula) izvršavaju batch datoteke s nepouzdanim argumentima.
Tehnički detalji značajnih ranjivosti otklonjenih ovim ažuriranjem:
Ranjivost kodnog imena BatBadBut, identificirana kao CVE-2024-24576 (CVSS ocjena 10), proizlazi iz nepravilne sanitizacije argumenata naredbenog retka čijom manipulacijom se mogu izvršiti proizvoljne naredbe.
Zahvaćeni proizvodi:
Ranjive su sve verzije Rust-a prije 1.77.2 na Windows platformi ako programski kôd ili jedan od njegovih modula poziva i izvršava batch datoteke s nepouzdanim argumentima.
Sigurnosni inženjer Ryotak tvrdi da ranjivost također utječe na sljedeće programske jezike, međutim, u trenutku pisanja obavijesti svi nisu izdali sigurnosne zakrpe:
-
Erlang (ažuriranje dokumentacije)
-
Go (ažuriranje dokumentacije)
-
Haskell (dostupna zakrpa)
-
Java (neće biti popravljeno)
-
Node.js (zakrpa će biti dostupna)
-
PHP (zakrpa će biti dostupna)
-
Python (ažuriranje dokumentacije)
-
Ruby (ažuriranje dokumentacije)
Preporuke:
Preporučuje se nadogradnja Rust-a, prioritizirajući resurse čiji kôd (ili jedan od njegovih modula) izvršavaju batch datoteke s nepouzdanim argumentima.
Privremeno rješenje:
S obzirom na to da nisu svi programski jezici otklonili problem, programerima se preporučuje dodatan oprez prilikom izvršavanja naredbi na Windows operativnom sustavu. Potpuni utjecaj navedene ranjivosti ovisi o implementaciji koja koristi ranjiv programski jezik ili takav ranjiv modul.
Stoga za sprječavanje neočekivanog izvršavanja batch datoteka, treba razmotriti premještanje tih datoteka u direktorij koji nije uključen u PATH okolinu varijabli, gdje u tom slučaju batch datoteke neće biti izvršene osim ako nije navedena puna putanja (engl. full path).