با فعال بودن sudo در آدرس /etc/sudoers مهاجم می‌تواند سرریز بافر با سطح دسترسی ممتاز در Sudo ایجاد کند. برای استفاده از این آسیب‌پذیری نیازمند فعال بودن pwfeedback است. حمله کننده باید یک رشته طولانی به stdin تابع getln() در tgetpass.c بفرستد.

شناسه آسیب‌پذیری: CVE-2019-18634

سطح ریسک: خطرناک

CVSS:3.1/AV: L/AC: L/PR: L/UI: N/S: U/C: H/I: H/A: H

 سیستم‌های آسیب‌پذیر:

Sudo before 1.8.26

نیازمندی تعامل کاربر: خیر

سال شناسایی: ۲۰۱۹

توضیحات:

در sudo اگر pwfeedback در آدرس /etc/sudoers فعال باشد، مهاجم می تواند یک سرریز بافر در فرایند sudo دارای دسترسی ممتاز ایجاد کند. (pwfeedback تنظیمات پیش فرض در linux mint است، این تنظیمات برای نسخه های دیگر تنظیم پیش فرض نیست و توسط مدیر سیستم می‌تواند فعال می‌شود) حمله کننده باید یک رشته طولانی به stdin تابع getln() در tgetpass.c بفرستد.

sudo یک برنامه کاربردی مدیریتی بسیار رایج و راحت است و به کاربر اجازه تغییر هویت او برای اجرای یک خط دستور را می‌دهد. به طور معمول و نه همیشه دستوری که اجرا می‌شود با سطح دسترسی root می‌باشد.

هدف pwfeedback ساخت فایل با امنیت بالاتر است و هنگامیکه فعال باشد، در زمان وارد نمودن پسوورد برای sudo، علامت * نمایش داده می‌شود. متاسفانه این تابع می تواند منجربه سرریز بافر شود و احتمال زیادی دارد که حمله کننده بتواند این باگ را اکسپلویت کند.

فعال نبودن pwfeedback به صورت پیش فرض خبر خوبی است. قسمت بد داستان زمانی است که sysadmin در اغلب موارد آن را فعال می‌نماید. البته در نسخه‌های معروف لینوکس Elementary OS و linux Mint در حالت پیش فرض فعال است.

خوشبختانه این مشکل در اکثر نسخه‌ها دارای وصله امنیتی است و در نسخه‌های بعد از ۱.۸.۳۱ این مشکل برطرف شده است. برای نسخه‌های قدیمی به روزرسانی موجود است و در سریع‌ترین زمان ممکن باید سیستم‌های قدیمی باید به روز رسانی شوند.

اگر برای سیستم عامل مورد استفاده شما هیچ گونه به روزرسانی موجود نبود می‌توان با غیرفعال کرد pwfeedback از این باگ جلوگیری کرد. برای اطمینان پیدا کردن از فعال بودن یا فعال نبودن از دستور زیر برای بررسی کردن این موضوع استفاده نمایید:

Sudo -l

اگر در لیست نمایش داده شده، pwfeedback بود سیستم نسبت به این باگ آسیب پذیر است. برای درست کردن این مشکل باید فایل sudoers ویرایش شود که معمولا در آدرس /etc/sudoers قرار دارد و به شکل زیر باید ویرایش شود:

Defaults !pwfeedback

منابع:

https://nvd.nist.gov/vuln/detail/CVE-2019-18634

https://www.blackhatethicalhacking.com/news/nasty-linux-macos-sudo-bug-found-and-fixed/