Уразлівасць у Git для Cygwin, якая дазваляе арганізаваць выкананне кода

У Git выяўлена крытычная ўразлівасць (CVE-2021-29468), якая выяўляецца толькі пры зборцы для асяроддзя Cygwin (бібліятэка для эмуляцыі базавага Linux API у Windows і набор тыпавых linux-праграм для Windows). Уяўнасць дазваляе выканаць код зламысніка пры выманні дадзеных («git checkout») з рэпазітара, падкантрольнага атакаваламу. Праблема ўхіленая ў пакеце git 2.31.1-2 для Cygwin. У асноўным праекце Git праблема пакуль не выпраўлена (малаверагодна, што нехта сваімі рукамі збірае git для Cygwin, а не выкарыстоўвае гатовы пакет).

Уразлівасць выклікана апрацоўкай асяроддзя Cygwin як Unix-падобнай сістэмы, а не Windows, што прыводзіць да адсутнасці абмежаванняў на выкарыстанне знака '\' у шляхі, у той час як у Cygwin, як і ў Windows, дадзены знак можа выкарыстоўвацца для падзелу каталогаў. У выніку, праз стварэнне спецыяльна мадыфікаванага рэпазітара, які змяшчае сімвалічныя спасылкі і файлы з сімвалам зваротнага слэша, можна дабіцца перазапісу адвольных файлаў пры загрузцы дадзенага рэпазітара ў Cygwin (у Git для Windows аналагічная ўразлівасць была выпраўлена ў 2019 годзе). Атрымаўшы магчымасць перазапісу файлаў, атакавалы можа перавызначыць hook-выклікі ў git і дамагчыся выкананні адвольнага кода ў сістэме.

Крыніца: opennet.ru

Дадаць каментар