په PolKit کې جدي زیان منونکي په ډیری لینکس توزیعونو کې روټ لاسرسي ته اجازه ورکوي

Qualys د پولکیټ (پخوانی PolicyKit) سیسټم برخې کې یو زیانمنونکی (CVE-2021-4034) په ګوته کړی چې په توزیع کې کارول کیږي ترڅو بې ګټې کاروونکو ته اجازه ورکړي چې هغه عملونه ترسره کړي چې د لاسرسي حق ته اړتیا لري. زیان منونکي ځایی کارونکي ته اجازه ورکوي چې خپل امتیازات د ریښې لپاره ګړندي کړي او د سیسټم بشپړ کنټرول ترلاسه کړي. ستونزه د PwnKit په نوم نومول شوې او د کاري استحصال تولید لپاره د پام وړ دی چې په ډیری لینکس توزیعونو کې په ډیفالټ ترتیب کې پرمخ ځي.

ستونزه د PolKit په pkexec افادیت کې شتون لري ، کوم چې د SUID روټ بیرغ سره راځي او د ټاکل شوي PolKit مقرراتو سره سم د بل کارونکي د امتیازاتو سره کمانډ چلولو لپاره ډیزاین شوی. د کمانډ لاین دلیلونو ناسم اداره کولو له امله چې pkexec ته لیږدول شوي، یو بې ګټې کارونکي کولی شي تصدیق پریږدي او خپل کوډ د روټ په توګه پرمخ بوځي، پرته له دې چې د لاسرسي مقررات ټاکل شوي وي. د برید لپاره ، دا مهمه نده چې په PolKit کې کوم تنظیمات او محدودیتونه مشخص شوي ، دا کافي دي چې د SUID روټ ځانګړتیا د pkexec یوټیلټي سره د اجرا وړ فایل لپاره ټاکل شوې.

Pkexec د پروسې پیل کولو پرمهال د پاس شوي کمانډ لاین دلیل شمیره (argc) اعتبار نه ګوري. د pkexec پراختیا کونکو داسې انګیرله چې د argv صف کې لومړۍ ننوتل تل د پروسې نوم لري (pkexec) ، او دویمه یا د NULL ارزښت یا د کمانډ نوم د pkexec له لارې پیل شوی. څرنګه چې د استدلال شمیره د سري اصلي مینځپانګې په مقابل کې نه وه چک شوې او داسې انګیرل کیږي چې تل له 1 څخه لوی وي ، که چیرې یوه پروسه د خالي argv صف څخه تیریږي ، لکه څنګه چې د لینکس اجرایوي فعالیت اجازه ورکوي ، pkexec به NULL د لومړي دلیل په توګه چلند وکړي ( د پروسې نوم) او بل د بفر حافظې څخه بهر ، لکه د سرې راتلونکي مینځپانګې په څیر. |———+———+——+———|———+———+—+————| | argv[0] | argv[1] | ... | argv[argc] | envp[0] | envp[1] | ... | envp[envc] | |—-|—-+—-|—-+——+——|——|—-|—-+—-|—-+——+—|——| VVVVVV "پروګرام" "-اختیار" NULL "ارزښت" "PATH = نوم" NULL

ستونزه دا ده چې د argv سرې وروسته په حافظه کې د envp صف شتون لري چې د چاپیریال تغیرات لري. په دې توګه، که د argv صف خالي وي، pkexec د چاپیریال متغیرونو سره د صف له لومړي عنصر څخه د لوړ امتیازاتو سره د چلولو قوماندې په اړه معلومات استخراجوي (argv[1] د envp[0] سره ورته والی شو)، د کوم مینځپانګې کنټرول کیدی شي. د برید کوونکي لخوا.

د argv[1] د ارزښت ترلاسه کولو سره، pkexec هڅه کوي، په PATH کې د فایل لارې په پام کې نیولو سره، د اجرا وړ فایل ته بشپړه لار وټاکي او د argv[1] ته د بشپړې لارې سره تار ته یو پوائنټر لیکي، کوم چې د لومړي چاپیریال متغیر ارزښت د بیا لیکلو لامل کیږي، ځکه چې argv[1] د envp[0] سره ورته دی. د لومړي چاپیریال متغیر نوم په مینځلو سره ، برید کونکی کولی شي په pkexec کې د چاپیریال بل متغیر بدل کړي ، د مثال په توګه ، د "LD_PRELOAD" چاپیریال متغیر ځای په ځای کړي ، کوم چې په سوډ برنامو کې اجازه نلري ، او د دوی ګډ کتابتون ته د بارولو لپاره تنظیم کړئ. پروسه

کاري استحصال کې د GCONV_PATH متغیر ځای په ځای کول شامل دي ، کوم چې د سمبول ټرانسکوډینګ کتابتون ته د لارې ټاکلو لپاره کارول کیږي ، په متحرک ډول بار کیږي کله چې د g_printerr() فنکشن ته زنګ ووهي ، کوم چې کوډ iconv_open() کاروي. په GCONV_PATH کې د لارې بیا تعریف کولو سره ، برید کونکی کولی شي ډاډ ترلاسه کړي چې دا د معیاري iconv کتابتون نه دی چې بار شوی دی ، مګر د هغه خپل کتابتون دی ، له هغې څخه لاسي کونکي به اجرا شي کله چې په مرحله کې د خطا پیغام څرګند شي کله چې pkexec لاهم روان وي. د روټ حقونه او د لانچ اجازې دمخه چک شوي.

د یادونې وړ ده چې د دې حقیقت سره سره چې ستونزه د حافظې د فساد له امله رامینځته کیږي ، دا د هارډویر جوړښت کارولو ته په پام سره په معتبر او تکرار ډول ګټه اخیستل کیدی شي. چمتو شوی استحصال په اوبنټو ، ډیبیان ، فیډورا او سینټوس کې په بریالیتوب سره ازمول شوی ، مګر په نورو توزیع کې هم کارول کیدی شي. اصلي ګټه اخیستنه لاهم په عامه توګه شتون نلري ، دا په ګوته کوي چې دا کوچنۍ ده او د نورو څیړونکو لخوا په اسانۍ سره رامینځته کیدی شي ، نو دا مهمه ده چې ژر تر ژره د څو کاروونکو سیسټمونو کې پیچ تازه نصب کړئ. پولکیټ د BSD سیسټمونو او سولاریس لپاره هم شتون لري ، مګر د دوی کارولو لپاره ندي مطالعه شوي. هغه څه چې پیژندل شوي دا دي چې برید په OpenBSD کې نشي ترسره کیدی، ځکه چې د OpenBSD کرنل اجازه نه ورکوي چې د null argc ارزښت تیر شي کله چې execve() ویل کیږي.

ستونزه د می 2009 راهیسې د pkexec کمانډ اضافه کولو راهیسې شتون لري. د PolKit زیان مننې لپاره حل اوس مهال د پیچ ​​په توګه شتون لري (هیڅ پیچ خوشې شوی نه دی)، مګر له هغه وخته چې د توزیع پراختیا کونکو ته د ستونزې په اړه دمخه خبر ورکړل شوی و، ډیری توزیع د زیان مننې په اړه د معلوماتو افشا کولو سره په ورته وخت کې تازه خپور کړ. مسله په RHEL 6/7/8، Debian، Ubuntu، openSUSE، SUSE، Fedora، ALT Linux، ROSA، Gentoo، Void Linux، Arch Linux او Manjaro کې حل شوې ده. د زیان مننې مخنیوي لپاره د لنډمهاله اقدام په توګه ، تاسو کولی شئ د /usr/bin/pkexec برنامې ("chmod 0755 /usr/bin/pkexec") څخه د SUID روټ بیرغ لرې کړئ.



سرچینه: opennet.ru

Add a comment