Kritična ranjivost u programskim jezicima na Windows platformi - BatBadBut

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).
 
Više informacija moguće je pročitati na poveznicama u nastavku:
[inicijalna objava: 11.4.2024 - 10:47]