Абнаўленне Git з устараненнем 8 уразлівасцяў

Апублікаваны карэкціруючыя выпускі размеркаванай сістэмы кіравання зыходнымі тэкстамі Git 2.24.1, 2.23.1, 2.22.2, 2.21.1, 2.20.2, 2.19.3, 2.18.2, 2.17.3, 2.16.6, 2.15.4. 2.14.62.24.1, у якіх ухіленыя ўразлівасці, якія дазваляюць атакаваламу перапісаць адвольныя шляхі ў файлавай сістэме, арганізаваць выдалены запуск кода або перазапісаць файлы ў каталогу «.git/». Большасць праблем выяўлены супрацоўнікамі
Microsoft Security Response Center, пяць з васьмі ўразлівасцяў спецыфічныя для платформы Windows.

  • CVE-2019-1348 - струменевая каманда "feature export-marks=path"дазваляе запісаць пазнакі ў адвольныя каталогі, што можа выкарыстоўвацца для перазапісу адвольных шляхоў у ФС пры выкананні аперацыі "git fast-import" з неправеранымі ўваходнымі дадзенымі.
  • CVE-2019-1350 - некарэктнае экранаванне аргументаў каманднага радка магло прывесці да выдаленага выканання кода атакавалага пры рэкурсіўным кланаванні з выкарыстаннем URL ssh://. У прыватнасці, некарэктна апрацоўвалася экранаванне аргументаў, якія сканчаюцца на зваротны слеш (напрыклад, "test \"). У гэтым выпадку пры апраўленні аргументу падвойнымі двукоссямі, апошняя двукосся апынялася экранаванай, што дазваляла арганізаваць падстаноўку сваіх опцый у камандным радку.
  • CVE-2019-1349 - пры рэкурсіўным кланаванні субмодуляў («clone -recurse-submodules») у асяроддзі Windows пры вызначаных умовах можна было ініцыяваць выкарыстанне аднаго git-каталога двойчы (.git, git~1, git~2 і git~N у NTFS распазнаецца як адзін каталог, але гэтая сітуацыя правяралася толькі для git~1), што магло ўжывацца для арганізацыі запісу ў каталог”. git». Для арганізацыі выканання свайго кода атакавалы, напрыклад, можа падставіць свой скрыпт праз апрацоўшчык post-checkout у файле .git/config.
  • CVE-2019-1351 - апрацоўшчык літарных імёнаў дыскаў у шляхах Windows пры трансляцыі шляхоў тыпу "C:\" быў разлічаны толькі на замену адналітарных лацінскіх ідэнтыфікатараў, але не ўлічваў магчымасць стварэння віртуальных дыскаў, прызначаных праз "subst літара:шлях". Такія шляхі апрацоўваліся не як абсалютныя, а як адносныя шляхі, што дазваляла пры кланаванні шкоднаснага рэпазітара арганізаваць запіс у адвольны каталог за межамі працоўнага дрэва каталогаў (напрыклад, пры выкарыстанні лічбаў або unicode-знакаў у назове дыска — «1:\what\the\" hex.txt» ці «ä:\tschibät.sch»).
  • CVE-2019-1352 - пры працы на платформе Windows ужыванне альтэрнатыўных струменяў дадзеных у NTFS, ствараных праз даданне прыкметы ":stream-name:stream-type" да імя файла, дазваляла перазапісаць файлы ў каталогу ".git/" пры кланаванні шкоднаснага рэпазітара. Напрыклад, імя ".git::$INDEX_ALLOCATION" у NTFS апрацоўвалася як карэктная спасылка на каталог ".git".
  • CVE-2019-1353 - пры выкарыстанні Git у асяроддзі WSL (Windows Subsystem for Linux) пры звароце да працоўнага каталога не прымянялася абарона ад маніпуляцыі імёнамі ў NTFS (былі магчымыя напады праз трансляцыю імёнаў FAT, напрыклад, да «.git» можна было звярнуцца праз каталог «git~1»).
  • CVE-2019-1354 -
    магчымасць запісы ў каталог ".git/" на платформе Windows пры кланаванні шкоднасных рэпазітароў, утрымоўвальных файлы са зваротным слешам у імі (напрыклад, "a\b"), які дапушчальны ў Unix/Linux, але ўспрымаецца як частка шляху ў Windows.

  • CVE-2019-1387 - недастатковая праверка імёнаў субмодуляў магла выкарыстоўвацца для арганізацыі мэтавых нападаў, якія пры рэкурсіўным кланаванні патэнцыйна маглі прывесці да выканання кода атакавалага. Git не забараняў ствараць каталог субмодуля ў каталогу іншага субмодуля, што ў большасці выпадках толькі можа прывесці да замяшання, але патэнцыйна не выключае перазапісы змесціва іншага модуля падчас рэкурсіўнага кланавання (напрыклад, каталогі субмодуляў "hippo" і "hippo/hooks" размяшчаюцца як " .git/modules/hippo/» і «.git/modules/hippo/hooks/», а каталог hooks у hippo можа асобна выкарыстоўвацца для размяшчэння запускаемых апрацоўшчыкаў.

Карыстачам Windows рэкамендуецца тэрмінова абнавіць версію Git, а да абнаўлення ўстрымацца ад кланавання неправераных рэпазітароў. Калі магчымасці тэрмінова абнавіць версію Git пакуль няма, то для зніжэння рызыкі нападу рэкамендуецца не запускаць "git clone -recurse-submodules" і "git submodule update" з неправеранымі рэпазітарамі, не выкарыстоўваць "git fast-import" з неправеранымі ўваходнымі патокамі і не кланаваць рэпазітары ў раздзелы на базе NTFS.

Для дадатковай абароны ў новых выпусках таксама забаронена выкарыстанне ў .gitmodules канструкцый у форме "submodule.{name}.update=!command". Для дыстрыбутываў прасачыць за выпускам абнаўленняў пакетаў можна на старонках Debian,Ubuntu, RHEL, SUSE/openSUSE, Мяккая фетравы капялюш, арка, ALT, FreeBSD.

Крыніца: opennet.ru

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