Több programozási nyelvet érintő sebezhetőséget fedeztek fel

RyotaK kiberbiztonsági kutató felfedezett egy kritikus sebezhetőséget, amelyet „BatBadBut”-nak nevezett el, és több programozási nyelvet érint.

A BatBadBut egy olyan sebezhetőség, amely lehetővé teszi a támadó számára, hogy a meghatározott feltételek teljesülése esetén parancsinjekciót hajtson végre Windows alkalmazásokon, amelyek közvetve függnek a CreateProcess függvénytől. A függvény implicit módon létrehozza a cmd.exe-t a batch fájlok (.bat, .cmd stb.) végrehajtásakor, még akkor is, ha az alkalmazás nem adta meg őket a parancssorban.

Mivel alapértelmezés szerint a PATHEXT környezeti változóban szerepelnek a .bat és .cmd fájlok a Windowsban, egyes programok véletlenül batch fájlokat hajtanak végre a tervezett parancsok helyett. Ez önkényes parancsfuttatásokhoz vezethet, még akkor is, ha a következő példához hasonlóan nem tartalmaz közvetlenül .bat vagy .cmd fájlokat.

RyotaK elmagyarázta, hogy az operációs rendszer a batch fájlokat a „cmd exe” paranccsal hajtja végre, amelynek bonyolult elemzési szabályai vannak a parancsargumentumokra, és a programozási nyelvek futási ideje nem tudja megfelelően kikerülni a parancsargumentumokat. A programozási nyelvek többsége biztosítja a CreateProcess() függvény interfészét, azonban nem tudja megfelelően escapelni a függvénynek átadott parancsargumentumokat.

Az alábbi feltételeknek kell teljesülnie a BatBadBut kihasználásához:

  • Az alkalmazás parancsot hajt végre Windowson
  • Az alkalmazás nem adja meg a parancs fájlkiterjesztését, vagy a fájlkiterjesztés .bat vagy .cmd.
  • A végrehajtott parancs a parancs argumentumainak részeként felhasználó által vezérelt bemenetet tartalmaz.
  • A programozási nyelv futtatási ideje nem tudja megfelelően kikerülni a cmd.exe parancsargumentumait.

A kutató már értesítette az érintett programozási nyelvek karbantartóit, akik lépéseket tettek a hiba elhárítására.

A Carnegie Mellon Egyetem CERT/CC-je tanácsadást tett közzé a problémával kapcsolatban. Négy különböző CVE-azonosítót – CVE-2024-1874, CVE-2024-22423, CVE-2024-24576 és CVE-2024-3566 – rendeltek a problémához.

(securityaffairs.com)