Exim

یک محقق امنیتی دو آسیب‌پذیری بحرانی را در Exim که یک سیستم محبوب انتقال پیام از طریق اینترنت است کشف و به‌صورت عمومی افشا کرد که یکی از آن‌ها می‌تواند به یک مهاجم از راه دور اجازه دهد تا یک کد مخرب را بر روی سرور مورد هدف اجرا کند.

Exim یک عامل انتقال (۱) منبع باز است که برای سیستم‌عامل‌های یونیکس مانند لینوکس، Mac OSX یا سولاریس توسعه داده شده است که مسئولیت مسیریابی، تحویل دادن و دریافت کردن پست‌های الکترونیکی را دارد.

اولین آسیب‌پذیری که به نام CVE-2017-16943 شناخته می‌شود[۱]، یک نقص use-after-free است که می‌تواند از راه دور و برای اجرای کد دلخواه بر روی سرور SMTP با دست‌کاری چندین دستور BDAT مورد بهره‌برداری قرار گیرد.

محققان در این رابطه می‌گویند: “برای اجرای این اشکال، دستور BDAT برای اعمال یک تخصیص با به وجود آمدن یک خطا ضروری است. طبق تحقیق انجام‌شده، ما تأیید می‌کنیم که این آسیب‌پذیری می‌تواند برای اجرای کد از راه دور مورد بهره‌برداری قرار گیرد، اگر باینری با PIE کامپایل نشده باشد.”

این محقق که دارای نام کاربری mehqq در توییتر است، همچنین یک کدِ بهره‌بردار اثبات ادعا را منتشر کرده است که به زبان python نوشته شده است و می‌تواند به هرکسی اجازه دهد تا کد دلخواه خود را بر روی سرورهای Exim آسیب‌پذیر اجرا کند.

آسیب‌پذیری دوم که به نام CVE-2017-16944 شناخته می‌شود[۲]، یک نقص DoS است که می‌تواند به یک مهاجم از راه دور اجازه دهد تا سرورهای Exim را حتی درزمانی که ارتباط برقرار نشده و توسط مجبور کردن آن برای اجرای یک حلقه بی‌نهایت(۲) و بدون crash کردن به حالت تعلیق درآورد.

این نقص به‌این‌علت به وجود آمده است که بررسی کاراکتر “.” در هنگام تجزیه header داده BDAT به‌منظور تشخیص پایان یک پست الکترونیک به‌درستی انجام نمی‌شود.

در توضیح این آسیب‌پذیری آمده است[۳]: “تابع receive_msg در receive.c در daemon SMTP درExim  نسخه‌های ۴٫۸۸ و ۴٫۸۹ به مهاجمان دورافتاده اجازه می‌دهد تا موجب یک حمله DoS (حلقه بی‌نهایت و خستگی پشته(۳)) شوند. این حمله از طریق بردارهایی که شامل دستورات BDAT هستند و یک بررسی نامناسب کاراکتر “.” به معنای تعیین انتهای محتوا که مربوط به تابع bdat_getc است، پیاده‌سازی می‌شود.”

این محقق همچنین یک بهره‌بردار اثبات ادعا را برای این آسیب‌پذیری ارائه داده است که سرور Exim را در حال crash کردن نشان می‌دهد.

هردوی این آسیب‌پذیری‌ها در نسخه ۴٫۸۸ و ۴٫۸۹ قرار دارند و به مدیران سیستم توصیه می‌شود تا برنامه‌های Exim خود را به نسخه ۴٫۹ که بر روی GitHub ارائه شده است، ارتقا دهند[۴].

منابع

[۱] https://bugs.exim.org/show_bug.cgi?id=2199

[۲] https://bugs.exim.org/show_bug.cgi?id=2201

[۳] https://nvd.nist.gov/vuln/detail/CVE-2017-16944

[۴] https://github.com/Exim/exim

[۵] https://thehackernews.com/2017/11/exim-internet-mailer-flaws.html


(۱) mail transfer agent (MTA)
(۲) infinite loop
(۳) stack exhaustion