Új biztonsági rést javítottak az előre telepített szövegszerkesztőkben a különböző disztribúciókban Linuxot találtak a Vim és a Neovim szövegszerkesztőkben (CVE-2019-12735).
Az ezekben a szerkesztőkben talált hiba lehetővé teszi a hackerek számára a számítógépek irányítását, amikor a felhasználók rosszindulatú szöveges fájlt nyitnak meg. A probléma az alapértelmezés szerint engedélyezett modelltevékenységgel (": set modeline") nyilvánul meg, amely lehetővé teszi a szerkesztési beállítások meghatározását a feldolgozott fájlban.
A Vim és a NeoVim villája tartalmazott egy hibát, amely a modellekben rejlett. Ez a szolgáltatás lehetővé teszi a felhasználók számára, hogy megadják az ablak méreteit és egyéb egyéni beállításokat a szövegfájl kezdete vagy vége közelében.
Ez a szolgáltatás alapértelmezés szerint engedélyezve van a Vim 8.1.1365 Neovim 0.3.6 előtti verziókban, és minden fájltípusra vonatkozik, beleértve a .txt fájlokat is.
A Vim sérülékenységéről
A Modeline révén csak korlátozott számú lehetőség engedélyezett. SHa egy kifejezés opcióértékként van megadva, akkor sandbox módban fut, amely csak a legegyszerűbb biztonságos műveleteket teszi lehetővé.
Ugyanakkor, a ": source" parancs az engedélyezettek közé tartozik, amelyben a "!" módosítót használhatja. tetszőleges parancsok futtatásához a megadott fájlból.
Ezért a kód végrehajtásához elegendő a modell sorában feltüntetni a "set foldexpr = execute ('\: source! Some_file'):" formátumú konstrukciót. A Neovimban a végrehajtási hívás tilos, de helyette az assert_fails használható.
Másrészt a homokozóban úgy tervezték, hogy megakadályozza a mellékhatásokat:
A „foldexpr”, a „formatexpr”, az „includeeexpr”, az „indentexpr”, a „statusline” és a „foldtext” opciók mind értékelhetők egy homokozóban. Ez azt jelenti, hogy védve van ezekkel a kifejezésekkel szemben, kellemetlen mellékhatásokkal. Ez bizonyos biztonságot nyújt, ha ezeket az opciókat egy modell definiálja.
Míg a modellek korlátozzák az elérhető parancsokat, és az operációs rendszertől elzárt környezetben hajtják végre őket, Armin Razmjou kutató megjegyezte, hogy a parancs: font! megkerülte ezt a védelmet:
"Elolvassa és végrehajtja a parancsokat egy adott fájlban, mintha manuálisan adták volna meg, és végrehajtja őket, miután a homokozó elhagyta" - írta a kutató a hónap elején megjelent üzenetben. -ci.
Így triviálisan fel lehet építeni egy modellvonalat, amely a kódot a homokozón kívül hajtja végre.
A Post két elvi dokumentumot tartalmaz, amelyek közül az egyik grafikusan szemlélteti a fenyegetést.
Az egyikük egy fordított héjat nyit meg a Vim vagy NeoVim futtató számítógépen. Innen a támadók az igényelt gépnél elindíthatták az általuk választott parancsokat.
"Ez a PoC egy valódi támadási megközelítést ír le, amelyben egy fordított héj indul, amikor a felhasználó megnyitja a fájlt" - írta Razmjou. «A támadás elrejtése érdekében a fájlt azonnal átírják, amikor megnyitják. A PoC terminál menekülési szekvenciákkal is elrejti a modell vonalat, amikor a tartalmat macskával nyomtatják. (a -v macska feltárja a tényleges tartalmat). «
A parancsfuttatás sebezhetősége a szokásos modellezési funkciók aktiválását igényli, mint egyes Linux disztribúciókban alapértelmezés szerint. A hiba a 8.1.1365 verzió előtti Vimben és a 0.3.6 verzió előtti Neovimben található.
A Nemzeti Szabványügyi és Technológiai Intézet nemzeti sebezhetőségi adatbázisának ez a tanácsa azt mutatja, hogy a Debian és a Fedora Linux disztribúciók megkezdték a fix verziók kiadását.
A disztribúciókban a probléma megoldódik RHEL, SUSE / openSUSE, Fedora, FreeBSD, Ubuntu, Arch Linux és ALT.
A sebezhetőség továbbra sem javított a Debianban (A Debian modellben alapértelmezés szerint le van tiltva, így a biztonsági rés nem az alapértelmezett állapotban nyilvánul meg).
A MacOS legújabb verziója továbbra is sérülékeny verziót használ, bár a támadások csak akkor működnek, ha a felhasználók megváltoztattak egy alapértelmezett beállítást, amelynél engedélyezték a modellek funkciót.