یک آسیبپذیری اجرای کد از راه دور در نسخههای رومیزی اوبونتو وصله شد. این آسیبپذیری نسخههای کوانتال ۱۲.۱۰ و نسخههای بعدی اوبونتو را تحت تأثیر قرار میداد.
به گفتهی محققان امنیتی، زمانیکه کاربر یک پروندهی مخرب خاص را باز میکند، به مهاجم اجازهی تزریق کد داده میشود. این آسیبپذیری از مدیریت پروندههای پیشفرض اوبونتو ناشی میشود که مشخص میکند کدام برنامه مسئول باز کردن چه نوع پروندههایی است. این محقق امنیتی ۱۹ آذرماه این آسیبپذیری را بهطور خصوصی گزارش داده و روز چهارشنبه هفتهی گذشته وصلهی آن منتشر شده است.
این محقق امنیتی در پستی راجعبه این آسیبپذیری مینویسد: «اوبونتو در دایرکتوری /usr/share/applications/ تعدادی پرونده با پسوند desktop. برای برنامههای پیشفرض خود ذخیره کرده است. بهطور معمول پسوند پروندهها نیز برای تشخیص نوع پرونده بکار میرود. با این حال اگر محیط دسکتاپ نتواند از روی پسوند نوع پرونده را تشخیص دهد، مجدداً به تطبیق الگو خواهد پرداخت.»
زمانیکه بخش مدیریت پیشفرض پرونده در اوبونتو، برنامهی Apport را فراخوانی میکند، این درخواست بهگونهای مدیریت میشود که شرایط اجرای کد از راه دور برای مهاجم فراهم میشود. Apport برنامهی پیشفرض اوبونتو در زمان درهم شکستن سامانه عامل است.
او در ادامه توضیح داد: «در مورد برنامهی Apport هم پسوند پروندهی .crash و هم دنبالهی بایتهای مجیک مشخص هستند. محیط رومیزی ابتدا قبل از تطابق بایتهای مجیک، تلاش میکند پسوند پرونده را تشخیص دهد.»
این محقق امنیتی در ادامهی توضیحاتش گفت که تحت این شرایط، توصیفگر پروندهی crash در برنامهی Apport، دارای یک الگوی بایتی است که میتواند بهعنوان یک پروندهی اجرایی مورد استفاده قرار گیرد. این مسئله به این دلیل رخ میدهد که زمانیکه یک پروندهی ناشناخته دچار درهمشکستگی میشود، برنامهی Apport پروندهی crash آن را تجزیه و تحلیل کرده و پیام پاپآپی را برای کاربر نمایش میدهد تا نوع crash اتفاق افتاده را شرح دهد. در این شرایط مهاجم میتواند پروندههای مخرب crash. و pyfile. را در داخل سامانه عامل قرار داده و از این آسیبپذیری بهرهبرداری کند.
او گفت: «نرمافزار Apport گزارشهای crash را در قالب مخصوص خود (بهطور متن ساده) خوانده و مینویسد. این برنامه میتواند دادهها را جمعآوری کرده و گزارش دهد. دادههایی که ممکن است توسط مهاجمان استفاده شده و محتوای گزارشها و دایرکتورهای مقصد که گزارش به آنها ارسال میشود، را تغییر داده باشند.»
براساس نتایج این پژوهش، با استفاده از اسکریپتهای قلاب کردن بستههای خاص، میتوان محتوا و آدرسهای مقصد در گزارشهای crash را سفارشیسازی کرد. یکی از این فیلدهای گزارش، CrashDB است. با استفاده از این فیلد میتوان پروندههای پیکربندی ویژهای را بارگذاری کرد.
مشکل دیگری که وجود دارد این است که میتوان از فیلد CrashDB مستقیماً پروندههای پیکربندی CrashDB را بارگیری کرد و از پروندههای محلی برای این کار استفاده نکرد. این کد ابتدا بررسی میکند که آیا فیلد CrashDB با نویسهی { شروع شده است یا خیر. این نویسه نشان میدهد که یک دیکشنری در پایتون آغاز شده است. اگر این نویسه یافت شد، برنامهی Apport تابع ()eval با ورودی فیلد CrashDB در پایتون را فراخوانی میکند. تابع ()eval از ورودی دریافتی همچون عبارات پایتون استفاده میکند و منجر به اجرای کد پایتون بهطور مستقیم و قابل اعتماد میشود.
این محقق امنیتی گفت در سادهترین حالت مهاجم میتواند در دایرکتوری بارگیری کاربران، پروندههای مخرب crash و .pyfile را کار بگذارد و باعث اجرای کد شود. این سناریو با استفاده از مرورگر کروم بسیار ساده خواهد بود چرا که بهطور خودکار پروندهها را بارگیری میکند.
این دو آسیبپذیری در نسخهی کوانتال اوبونتو با شناسههای CVE-۲۰۱۶-۹۹۴۹ و CVE-۲۰۱۶-۹۹۴۹ هفتهی گذشته وصله شده است.
ثبت نظر