یک حساب کاربری دارای سطح اختیار پایین در اکثر سیستم‌عامل‌های لینوکس با هر مقدار UID بیش از ۲۱۴۷۴۸۳۶۴۷ می‌تواند به لطف یک آسیب‌پذیری که اخیراً کشف شده است، هر دستور systemctl را به‌صورت غیرمجاز اجرا کند.

این آسیب‌پذیری گزارش‌شده درواقع در PolicyKit (همچنین به‌عنوان polkit شناخته می‌شود) قرار دارد و یک ابزار در سطح اپلیکیشن برای سیستم‌عامل‌های یونیکس است که سیاست‌ها را تعریف می‌کند، امتیازات سیستم را مدیریت می‌کند و راه را برای فرایندهای غیرمجاز برای برقراری ارتباط با فرآیندهای مجاز فراهم می‌کند. مانند sudo، که اجازه ریشه را به یک فرآیند کامل نمی‌دهد.

این مسئله، به‌عنوان CVE-2018-19788 شناخته شده است[۱] و بر روی PolyKit نسخه ۰٫۱۱۵ تأثیرگذار است که به‌صورت پیش‌فرض بر روی بیشتر توزیع‌های محبوب لینوکس ازجمله Red Hat ،Debian ،Ubuntu و CentOS قرار دارد[۲-۴].

این آسیب‌پذیری به دلیل اعتبارسنجی نامعتبر PolicyKit از درخواست‌های مجوز برای هر کاربر دارای سطح اختیار پایین با UID بزرگ‌تر از INT_MAX به وجود آمده است.

در حقیقت INT_MAX یک ثابت در برنامه‌نویسی کامپیوتر است که مقدار حداکثری که یک متغیر صحیح می‌تواند ذخیره کند را تعریف می‌کند که این مقدار برابر است با ۲۱۴۷۴۸۳۶۴۷ (در هگزادسیمال برابر است با ۰x7FFFFFFF).

این بدین معنی است که اگر شما یک حساب کاربری در سیستم‌های تحت لینوکس با هر مقدار UID بیشتر از مقدار INT_MAX ایجاد کنید، مؤلفه PolicyKit به شما این امکان را می‌دهد تا هر دستور systemctl را با موفقیت اجرا کنید.

یک محقق امنیتی به نام Rich Mirch، با نام توییتری ۰xm1rch نیز یک بهره‌بردار اثبات ادعا را برای اثبات این آسیب‌پذیری که نیازمند یک کاربر با UID برابر ۴۰۰۰۰۰۰۰۰۰ است، منتشر کرده است[۵].

Red Hat نیز به مدیران سیستم توصیه کرده است تا هیچ UID منفی یا UID های بیش از ۲۱۴۷۴۸۳۶۴۶ را اجازه ندهند تا از این مشکل به‌صورت موقت جلوگیری شود تا درنهایت وصله موردنظر منتشر شود.

 

منابع

[۱] https://gitlab.freedesktop.org/polkit/polkit/issues/74

[۲] https://access.redhat.com/security/cve/cve-2018-19788

[۳] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=915332

[۴] https://people.canonical.com/~ubuntu-security/cve/2018/CVE-2018-19788.html

[۵] https://thehackernews.com/2015/04/Microsoft-Edge-Windows10-Browser.html

[۶] https://github.com/mirchr/security-research/blob/master/vulnerabilities/CVE-2018-19788.sh