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.