دربارهی آسیبپذیری
این آسیبپذیری با شناسه CVE-2019-14287 به کاربران لینوکس (با دسترسی محدود) امکان اجرای دستور با دسترسی root میدهد. مهاجم با قرار دادن “1-” یا “4294967295” بعنوان شناسه کاربری (user ID) میتواند از این آسیب پذیری استفاده کند.
این آسیبپذیری دور زدن سیاست امنیتی sudo است که به مهاجم یا هر برنامهای (علیرغم عدم صدور مجوز دسترسی root در”sudoers configuration”) اجازهی اجرای دستور دلخواه بعنوان کاربر root میدهد.
اگرچه جداسازی سطوح دسترسی یکی از اساسیترین اصول امنیتی در سیستم عامل لینوکس است ولی کاربران administrator همچنان میتوانند با ویرایش فایل sudoers تعیین کنند که هر کاربر مجاز به اجرای چه دستوراتی است؛ پس اگر کاربری با دسترسی root محدود به اجرای تعداد خاصی دستور شده باشد با استفاده از این آسیبپذیری می تواند همهی دستورات را بدون محدودیت اجرا کند.
در جدول 1 تاثیر این آسیبپذیری در توزیع Red Hat لینوکس قابل مشاهده است
Red Hat | |
بالا | پیچیدگی حمله |
پایین | مجوز یا دسترسیهای موردنیاز |
هیچ | میزان تعامل کاربر |
بالا | محرمانگی |
بالا | تاثیر در صحت (جامعیت) |
بالا | تاثیر در دسترس پذیری |
عملیاتی کردن آسیبپذیری
این آسیبپذیری تنها تنظیماتی از sudo رو تحت تاثیر قرار میدهد که یک لیست runas user داشته باشد. مثالی ساده از این آسیبپذیری:
someuser ALL=(ALL, !root) /usr/bin/somecommand
در این مثال کاربر root با نام کاربری مشخص شده که به نحو دیگری مثلا شناسه کاربری هم میتواند مشخص شود.
someuser ALL=(ALL, !#0) /usr/bin/somecommand
یکی دیگر از اکسپلویتهای احتمالی در CentOS :
- ایجاد یک کاربر با نام دلخواه test و تنظیم پسورد برای این کاربر
- ویرایش فایل sudoers و اضافه کردن عبارت test ALL=(ALL, !root)ALL به انتهای آن
- تغییر کاربر فعلی به test و اجرای دستور sudo –u#-1
دلیل این آسیبپذیری نحوهی پیادهسازی تابعی است که شناسه کاربری را به نام کاربری تبدیل میکند و به اشتباه 1- برمیگرداند و یا 4294967295 که معادل صفر و شناسه کاربری root است.
این آسیبپذیری همهی نسخههای sudo را بجز جدیدترین نسخه آن یعنی 1.8.28 تحت تاثیر قرار میدهد. اگر از Ubuntu استفاده میکنید برای اطمینان از آسیبپذیر بودن سیستم عامل خود و دریافت وصلههای امنیتی به این صفحه مراجعه کنید.
منابع