Viraka vya Git 2.39.1, 2.38.3, 2.37.5, 2.36.4, 2.35.6, 2.34.6, 2.33.6, 2.32.5, 2.31.6, na 2.30.7 vimetolewa kwa ajili ya mfumo wa usimamizi wa msimbo chanzo uliosambazwa wa Git. Viraka hivi hushughulikia udhaifu mbili ambao unaweza kuruhusu utekelezaji wa msimbo maalum kwenye mfumo wa mtumiaji wakati wa kutumia amri ya "git archive" na kufanya kazi na hazina za nje zisizoaminika. Udhaifu huu husababishwa na hitilafu katika msimbo wa uumbizaji wa commit na uchanganuzi wa faili ya ".gitattributes". Wakati wa kuchakata hazina za nje, hitilafu hizi zinaweza kusababisha uandishi wa kumbukumbu ya heap usio na mipaka na usomaji wa kumbukumbu holela.
Udhaifu wote wawili ulitambuliwa wakati wa ukaguzi wa usalama wa msingi wa msimbo wa Git uliofanywa na X41 kwa ombi la Mfuko wa Uboreshaji wa Teknolojia ya Chanzo Huria (OSTIF), wakfu ulioanzishwa ili kuimarisha usalama wa miradi ya chanzo huria. Mbali na masuala mawili muhimu yaliyojadiliwa hapa chini, ukaguzi pia uligundua udhaifu mmoja mkubwa, udhaifu wa wastani, na masuala manne yasiyo na madhara. Mapendekezo ishirini na saba ya kuboresha usalama wa msingi wa msimbo pia yalitolewa.
- CVE-2022-41903: Ufuriko kamili upo katika msimbo wa umbizo la taarifa za commit wakati wa kushughulikia thamani kubwa za ufito katika waendeshaji wa ufito kama vile "%<(", "%<|(", "%>(", "%>>(", na "%><( )". Ufuriko kamili hutokea katika kitendakazi cha format_and_pad_commit() kutokana na matumizi ya aina ya int kwa kigezo cha size_t, ambacho hutumika kubaini ukubwa wa ufito wa kizuizi kilichonakiliwa wakati wa kupiga simu memcpy().
Udhaifu hujidhihirisha kupitia maombi ya moja kwa moja yenye vigezo vya umbizo vilivyoundwa maalum (kwa mfano, wakati wa kuendesha "git log --format=...") na kupitia matumizi yasiyo ya moja kwa moja ya umbizo wakati wa utekelezaji wa amri ya "git archive" katika hazina inayodhibitiwa na mshambuliaji. Katika hali ya mwisho, virekebishaji vya umbizo hubainishwa kupitia kigezo cha export-subst katika faili ya ".gitattributes", ambayo inaweza kuwekwa na mshambuliaji katika hazina yake. Udhaifu huu unaweza kutumiwa kusoma na kuandika kumbukumbu ya heap kiholela, na kusababisha utekelezaji mbaya wa msimbo wakati wa kufanya kazi na hazina zisizoaminika.
- CVE-2022-23521: Namba kamili hufurika wakati wa kuchanganua yaliyomo kwenye faili za ".gitattributes" kwenye hazina. Hizi hutokea wakati wa kuchanganua idadi kubwa sana ya mifumo ya njia ya faili au idadi kubwa ya sifa zenye muundo mmoja, na pia wakati wa kuchanganua majina makubwa sana ya sifa. Suala hili linaweza kutumiwa kusoma na kuandika maeneo ya rundo kiholela na kusababisha utekelezaji mbaya wa msimbo wakati wa kufanya kazi na hazina isiyoaminika, ambapo mshambuliaji anaweza kuweka faili ya .gitattributes iliyotengenezwa maalum na kuhakikisha uorodheshaji wake.
Uchapishaji wa masasisho ya vifurushi katika usambazaji unaweza kufuatiliwa kwenye kurasa zifuatazo: Debian, Ubuntu, Gentoo, RHEL, SUSE, Arch, FreeBSD, NetBSD. Ili kupunguza hatari ya shambulio kutokana na kushindwa kusakinisha masasisho kwa wakati unaofaa, tunapendekeza kuepuka kufanya kazi na hazina zisizoaminika na kutumia amri ya "git archive". Ni muhimu kukumbuka kwamba amri ya "git archive" inaweza kuendeshwa bila kueleweka, kwa mfano, kutoka kwa git daemon. Ili kuzima "git archive" katika git daemon, badilisha kigezo cha daemon.uploadArch kwa kutumia amri "git config --global daemon.uploadArch false."
Zaidi ya hayo, udhaifu mwingine zaidi (CVE-2022-41953) unaweza kuzingatiwa katika Git kwa bidhaa Windows, ambayo inaruhusu utekelezaji wa msimbo wakati wa kunakili hazina za nje zisizoaminika kupitia GUI. Tatizo linasababishwa na ukweli kwamba Git GUI ya Windows Baada ya operesheni ya "kutoka", huendesha kiotomatiki amri kadhaa za baada ya usindikaji, kama vile kutekeleza programu ya kukagua tahajia ili kuangalia tahajia, huku njia za utafutaji wa kikagua tahajia cha faili pia zikijumuisha mti unaofanya kazi kwa kloni (shambulio linatokana na kuongeza kikagua tahajia kwenye mti unaofanya kazi wa hazina).
Chanzo: opennet.ru
