د لینکس کرنل په VFS کې زیان منونکي چې تاسو ته اجازه درکوي خپل امتیازات زیات کړئ

یو زیانمنتیا (CVE-2022-0185) د لینکس کرنل لخوا چمتو شوي د فایل سیسټم شرایطو API کې پیژندل شوی ، کوم چې ځایی کارونکي ته اجازه ورکوي چې په سیسټم کې د روټ امتیازات ترلاسه کړي. څیړونکي چې ستونزه یې په ګوته کړې د استحصال یوه مظاهره خپره کړه چې تاسو ته اجازه درکوي په ډیفالټ ترتیب کې په اوبنټو 20.04 کې د روټ په توګه کوډ اجرا کړئ. د استحصال کوډ پلان شوی چې د یوې اونۍ په اوږدو کې په GitHub کې پوسټ شي وروسته له دې چې توزیع یو تازه خپور کړي چې زیان منونکي حل کوي.

زیان په VFS کې د legacy_parse_param() فنکشن کې شتون لري او د فایل سیسټمونو کې چمتو شوي پیرامیټرو اعظمي اندازې په سمه توګه چک کولو کې د ناکامۍ له امله رامینځته کیږي چې د فایل سیسټم شرایطو API ملاتړ نه کوي. د یو پیرامیټر تیریدل چې خورا لوی وي د انټیجر متغیر د ډیریدو لامل کیدی شي د لیکلو لپاره د ډیټا اندازه محاسبه کولو لپاره کارول کیږي - کوډ د بفر اوور فلو چیک لري "که (لین> PAGE_SIZE - 2 - اندازه)" ، کوم چې نه کوي کار وکړئ که چیرې د اندازې ارزښت له 4094 څخه ډیر وي. د ټیټ حد له لارې د انټیجر اوور فلو لپاره (د انټیجر زیربنا ، کله چې 4096 - 2 - 4095 غیر لاسلیک شوي انټ ته کاسټ کول ، پایله 2147483648 ده).

دا تېروتنه اجازه ورکوي، کله چې د ځانګړي ډیزاین شوي فایل سیسټم عکس ته لاسرسی ومومي، د بفر اوور فلو لامل شي او د تخصیص شوي حافظې ساحې په تعقیب د کرنل ډیټا له سره ولیکي. د زیانمننې څخه ګټه پورته کولو لپاره، تاسو باید د CAP_SYS_ADMIN حقونه ولرئ، د بیلګې په توګه. د مدیر واکونه ستونزه دا ده چې یو غیرمستقیم کارونکي کولی شي دا ډول اجازې په یو جلا کانټینر کې ترلاسه کړي که چیرې سیسټم د کارونکي نوم ځایونو لپاره ملاتړ ولري. د مثال په توګه، د کاروونکي نوم ځایونه په ډیفالټ اوبنټو او فیډورا کې فعال شوي، مګر په Debian او RHEL کې فعال شوي ندي (مګر د کانټینر جلا کولو پلیټ فارمونه کارول کیږي).

ستونزه د لینکس کرنل 5.1 راهیسې راڅرګنده شوې او د پرون په تازه 5.16.2، 5.15.16، 5.10.93، 5.4.173 کې حل شوې. د بسته بندي تازه معلومات چې زیانمنونکي حل کوي لا دمخه د RHEL، Debian، Fedora، او Ubuntu لپاره خپاره شوي. فکس لاهم په آرچ لینکس، جینټو، سوس او اوپن سوس کې شتون نلري. د هغه سیسټمونو لپاره د امنیت د حل په توګه چې د کانټینر جلا کول نه کاروي، تاسو کولی شئ د sysctl "user.max_user_namespaces" ارزښت 0 ته وټاکئ: echo "user.max_user_namespaces=0" > /etc/sysctl.d/userns.conf # sysctl -p /etc/ sysctl.d/userns.conf

سرچینه: opennet.ru

Add a comment