Git 2.38.1 تھا پرانے ورژنز کے اپ ڈیٹس کے ساتھ ابھی جاری کیا گیا ہے، بشمول v2.30.6، v2.31.5، v2.32.4، v2.33.5، v2.34.5، v2.35.5، v2.36.3، اور v2.37.4 کے نئے پوائنٹ ریلیز۔ آج Git اپ ڈیٹس کا بڑا سیٹ سیکیورٹی کے مزید دو مسائل سامنے آنے کی وجہ سے ہے۔
گٹ کی تازہ ترین کمزوریاں CVE-2022-39253 اور CVE-2022-39260 ہیں۔ پہلا”–local”کلون آپٹیمائزیشن سے متعلق ہے جس کی وجہ سے $GIT_DIR میں ممکنہ صوابدیدی فائلیں ظاہر ہوتی ہیں جب کسی نقصان دہ ذخیرہ سے کلوننگ کی جاتی ہے۔ دوسری کمزوری گٹ شیل ذیلی کمانڈ کو بھیجی گئی حد سے زیادہ لمبی کمانڈ سٹرنگ کے بارے میں ہے جو بالآخر من مانی ہیپ رائٹ اور ریموٹ کوڈ پر عمل درآمد کا باعث بن سکتی ہے۔
ان دونوں CVEs کا خلاصہ Git 2.38.1 رہائی کے اعلان
میں کیا گیا ہے۔ a> as:
CVE-2022-39253:
جب `–local` کلون آپٹیمائزیشن پر انحصار کرتے ہوئے، Git ہارڈ لنکس بنانے سے پہلے سورس ریپوزٹری میں علامتی لنکس کا حوالہ دیتا ہے ( یا کاپیاں) منزل کے ذخیرے میں غیر متعلقہ لنک کی۔ یہ حیران کن رویے کا باعث بن سکتا ہے جہاں صوابدیدی فائلیں کسی ذخیرے کے `$GIT_DIR` میں موجود ہوتی ہیں جب کسی نقصان دہ ذخیرہ سے کلوننگ کی جاتی ہے۔گٹ اب علامتی لنکس کو `–لوکل` کلون میکانزم کے ذریعے ڈیفرنس نہیں کرے گا، اور اس کے بجائے ان ریپوزٹریوں کو کلون کرنے سے انکار کر دے گا جن کے علامتی لنکس `$GIT_DIR/objects` ڈائریکٹری میں موجود ہیں۔
اس کے علاوہ، `protocol.file.allow` کی قدر کو بطور ڈیفالٹ”صارف”میں تبدیل کر دیا جاتا ہے۔
CVE-2022-39260:
‘گٹ شیل’کو دی گئی ایک حد سے زیادہ لمبی کمانڈ سٹرنگ کے نتیجے میں’split_cmdline()’میں اوور فلو ہوسکتا ہے، جس کے نتیجے میں صوابدیدی ہیپ رائٹ اور ریموٹ کوڈ پر عمل درآمد ہوتا ہے جب ` git shell` بے نقاب ہے اور ڈائریکٹری `$HOME/git-shell-commands` موجود ہے۔`گٹ شیل` کو ان انٹرایکٹو کمانڈز سے انکار کرنا سکھایا جاتا ہے جو سائز میں 4MiB سے زیادہ ہیں۔ `split_cmdline()` کو 2GiB سے بڑے ان پٹس کو مسترد کرنے کے لیے سخت کیا گیا ہے۔