بنیاد نرمافزار آپاچی (ASF)، نهم دسامبر ۲۰۲۴، بهروزرسانیهای امنیتی را برای پچ یک آسیب پذیری بحرانی در نرمافزار سرور Tomcat خود منتشر کرد. سوء استفاده از این آسیب پذیری که با شناسه CVE-2024-56337 دنبال میشود، میتواند در شرایط خاص منجر به اجرای کد از راه دور (RCE) گردد.
این آسیب پذیری ناشی از پرداختن ناقص به یک باگ گزارش شده جدید (CVE-2024-50379) میباشد. یعنی مشکلات CVE-2024-50379 بطور کامل برطرف نشده است. CVE-2024-50379، یکی دیگر از نقصهای امنیتی بحرانی در Apache Tomcat میباشد که در 17 دسامبر 2024 به آن پرداخته شده است.
هر دوی این نقصها، آسیب پذیریهای race condition یا شرایط رقابتی TOCTOU میباشند که میتوانند منجر به اجرای کد در سیستم فایل حساس به حروف کوچک و بزرگ در زمان فعال بودن قابلیت نوشتن برای servlet شوند.
مفهوم Servlet Write به نوشتن دادهها در پاسخ HTTP از طریق یک آبجکت servlet اشاره دارد. در یک سرویس مبتنی بر وب، زمانی که یک کلاینت (مانند مرورگر) درخواست HTTP ارسال میکند، سرور با استفاده از servlet ها به این درخواستها پاسخ میدهد.
CVE-2024-56337 توسط محققان Nacl، WHOAMI، Yemoli و Ruozhi، با مشارکتهای تیم Knownsec 404، از جمله dawu و Sunflower، شناسایی و گزارش شده است. آنها یک PoC دقیق برای این آسیب پذیری ارائه کردهاند که هنوز در دسترس عموم قرار نگرفته است.
نسخههای آسیب پذیر Apache Tomcat
CVE-2024-56337، نسخههای Tomcat زیر را تحت تأثیر قرار میدهد:
- Apache Tomcat 11.0.0-M1 تا 0.1
- Apache Tomcat 10.1.0-M1 تا 1.33
- Apache Tomcat 9.0.0.M1 تا 0.97
Tomcat به طور خاص، پیش از فعال سازی دسترسی نوشتن برای servlet در سیستم فایل حساس به حروف کوچک و بزرگ، بررسی میکند که آیا «sun.io.useCanonCaches» به درستی تنظیم شده است یا خیر، و «sun.io.useCanonCaches» را در صورت امکان به طور پیشفرض در حالت false قرار میدهد.
از این رو، کاربرانی که Tomcat را روی یک فایل سیستم حساس به حروف همراه با دسترسی فعال نوشتن در servlet، اجرا میکنند، ممکن است به پیکربندی اضافی برای برطرف ساختن کامل آسیب پذیری CVE-2024-50379 بسته به اینکه کدام نسخه از جاوا را استفاده میکنند، نیاز داشته باشند.
تاثیر آسیب پذیری CVE-2024-56337
این آسیب پذیری خطر قابلتوجهی به دنبال دارد، بهویژه برای کاربرانی که Tomcat را روی سیستم فایلهای حساس به حروف (مانند ویندوز) همراه با servlet پیشفرض پیکربندی شده مجاز به عملیات نوشتن (که توصیه نمیشود) اجرا میکنند. مهاجمان میتوانند با آپلود فایلهای مخربی که بررسیهای امنیتی را دور میزند، از این نقص سوء استفاده کنند.
خواندن و آپلود همزمان به هنگام بارگذاری یک فایل میتواند مکانیزم بررسی حساسیت حروف کوچک و بزرگ Tomcat را دور بزند و باعث شود که فایل آپلود شده به عنوان یک JSP در نظر گرفته شود که منجر به اجرای کد از راه دور میگردد.
CVE-2024-56337 در واقع به هکرها اجازه میدهد تا فایلهای JSP قابل اجرا را بر روی سرور آپلود کنند که منجر به کنترل کامل سیستم آسیب پذیر میشود.
اقدامات امنیتی توصیه شده
برای کاهش خطرات مرتبط با CVE-2024-56337، از کاربران خواسته میشود اقدامات زیر را انجام دهند:
۱. ارتقا به نسخههای پچ شده Apache Tomcat:
۲. تغییرات پیکربندی:
- برای جاوا 8 یا جاوا 11: ویژگی system sun.io.useCanonCaches را روی false تنظیم کنید.
- برای جاوا 21 و جدیدتر: هیچ اقدامی لازم نیست زیرا این ویژگی حذف شده است.
۳. بررسی پیکربندی Servlet:
- غیرفعال کردن دسترسی نوشتن برای servlet پیشفرض مگر آنکه کاملاً ضروری باشد.
سخن پایانی
سازمانهایی که از نسخههای آسیب پذیر Apache Tomcat استفاده میکنند میبایست به نسخههای جدید، بهروزرسانی کنند. اقدام سریع به منظور ایمن سازی سیستمها و جلوگیری از سوء استفاده توسط هکرها ضروری است.