آسیب‌پذیری RCE بر روی APACHE STRUTS

آسیب‌پذیری RCE بر روی APACHE STRUTS

در 5 نوامبر 2018 بنیاد نرم افزاری #‫Apache به کاربران #‫Struts خود اعلام می کند که حتما از نسخه ی 1.3.3 کتابخانه Commons FileUpload استفاده کنند، چراکه نسخه های قبلی آن دارای آسیب پذیری Remote Code Execution می باشند. این آسیب پذیری به دلیل مشکل deserialization در Object های جاوا می باشد که این خود باعث می شود یک عملیات Exploiting موفقیت آمیز باعث نفوذ به سرور قربانی و نوشتن یک فایل یا کپی یک فایل بر روی سرور را برای نفوذگر عملی کند. بر اساس توضیحات منتشر شده، تا هنگامی که object به صورت تنها مورد استفاده قرار بگیرد، امکان upload و اجرای کدهای باینری در یک فراخوان deserialization وجود خواهد داشت. تا هنگامی که از یک مکانیزم متفاوت در ساختار upload فایل در Struts استفاده نکنید، به صورت پیش فرض از کمپوننت Commons FileUpload استفاده می شود. اولین بار هشداری که برای این آسیب پذیری منتشر شد در ماه مارس 2018 بود. از آن زمان تا کنون دو نسخه جدید Struts 2.3.x منتشر شده است. در نسخه منتشر شده ی 2.3.3 که در تاریخ 15 اکتبر منتشر شد همچنان آسیب پذیری موجود می باشد، چراکه نسخه ی 1.3.3 از کتابخانه Common FileUpload که آسیب پذیری در آن رفع شده است در نسخه ی Apache Struts 2.5.12 موجود می باشد. همچنین آسیب پذیری که مربوط به 2 سال پیش با شماره شناسایی CVE-2016-1000031 منتشر شده بود درباره همین کتابخانه بوده که امکان حمله ی DoS را برای نفوذگر ممکن می کرده است. برای جلوگیری از خطر این آسیب پذیری، کاربر می تواند به صورت دستی کتابخانه معیوب را جایگزین نماید. برای این کار می توان نسخه قدیمی WEB-INF/lib را توسط فایل به روز رسانی شده ی JAR آن که در آدرس زیر بر روی سایت Apache منتشر شده است جایگزین نمود: https://commons.apache.org/proper/commons-fileupload/download_fileupload.cgi راه دیگر رفع این آسیب پذیری این است که Apache Struts خود را به نسخه 2.5.12 ارتقا دهید.