پنج میلیون وبسایت وردپرسی در خطر به دلیل آسیبپذیری بحرانی در افزونه LiteSpeed Cache
یک آسیبپذیری جدی در افزونه محبوب LiteSpeed Cache که برای افزایش سرعت بسیاری از وبسایتهای وردپرسی استفاده میشود، شناسایی شده است. این آسیبپذیری به مهاجما...
یک آسیبپذیری جدی در افزونه محبوب LiteSpeed Cache که برای افزایش سرعت بسیاری از وبسایتهای وردپرسی استفاده میشود، شناسایی شده است. این آسیبپذیری به مهاجمان امکان میدهد تا با دسترسی به سطح مدیریتی، کنترل کامل وبسایتها را به دست بگیرند.
این افزونه که به عنوان یک راهحل کامل برای افزایش سرعت سایت شناخته میشود، بر روی بیش از پنج میلیون وبسایت نصب شده است و شامل حافظه کش در سطح سرور و مجموعهای از ویژگیهای بهینهسازی است.
جان بلکبورن، محقق امنیتی و عضو انجمن Patchstack Alliance، متوجه شد که افزونه LiteSpeed Cache دچار یک نقص امنیتی در افزایش سطح دسترسی غیرمجاز است. این نقص به گونهای است که هر بازدیدکنندهای از سایتهای تحت تاثیر این آسیبپذیری میتواند به سطح دسترسی مدیر سایت دست پیدا کند و از این طریق، امکان بارگذاری و نصب افزونههای مخرب را داشته باشد.
این آسیبپذیری ناشی از روشی است که افزونه برای محافظت از یکی از ویژگیهای خود به نام "user simulation" استفاده میکند. این ویژگی یک خزنده است که به صورت زمانبندی شده حافظه کش صفحات را پیشپر میکند. با این حال، مشخص شد که security hash مربوط به این ویژگی توسط یک روش ضعیف برای تولید اعداد تصادفی ایجاد میشود.
تولیدکننده اعداد تصادفی که برای تولید این hash استفاده میشود، به زمان فعلی وابسته است، اما تنها در بخش میکروثانیه. بنابراین، تنها یک میلیون مقدار ممکن برای seed و مقادیر hash مربوطه وجود دارد.
src/str.cls.php, function rrand()
public static function rrand($len, $type = 7)
{
mt_srand((int) ((float) microtime() * 1000000));
switch ($type) {
case 0:
$charlist = '012';
break;
case 1:
$charlist = '0123456789';
break;
case 2:
$charlist = 'abcdefghijklmnopqrstuvwxyz';
break;
case 3:
$charlist = '0123456789abcdefghijklmnopqrstuvwxyz';
break;
case 4:
$charlist = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
break;
case 5:
$charlist = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
break;
case 6:
$charlist = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
break;
case 7:
$charlist = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
break;
}
$str = '';
$max = strlen($charlist) - 1;
for ($i = 0; $i < $len; $i++) {
$str .= $charlist[mt_rand(0, $max)];
}
return $str;
}
در گزارش Patchstack آمده است: "تولیدکننده اعداد تصادفی از نظر رمزنگاری ایمن نیست، به این معنی که مقادیر 'تصادفی' تولید شده کاملاً قابل پیشبینی هستند اگر seed مشخص باشد."
این security hash تنها یکبار تولید میشود. این hash با یک secret خاص salt نمیشود، به درخواست کاربر خاصی متصل نیست و پس از تولید، دیگر تغییر نمیکند.
یک مهاجم بالقوه میتواند به راحتی این hash را از طریق brute-force پیدا کند. برای این حمله، تنها دانستن شناسه یک کاربر در سطح مدیر کافی است. با این حال، محققان اشاره کردهاند که user ID 1 در بسیاری از موارد موفق خواهد بود.
پس از یافتن hash معتبر، یک مهاجم میتواند از آن برای ایجاد یک حساب کاربری با سطح دسترسی مدیر استفاده کند.
نسخههای آسیبپذیر LiteSpeed Cache شامل نسخه 6.3.0.1 و قبل از آن هستند. در تاریخ 13 آگوست، تیم LiteSpeed نسخه 6.4 را برای رفع این مشکل منتشر کرد. در این نسخه، hash برای شبیهسازی نقش خزنده هر بار با استفاده از یک روش قویتر تولید میشود و یک زمان اعتبار 120 ثانیهای برای آن تعیین شده است.
نویسندگان گزارش به کاربران LiteSpeed توصیه میکنند که افزونه را حداقل به نسخه 6.4 بهروزرسانی کنند. این آسیبپذیری با شناسه CVE-2024-28000 اختصاص داده شده و در نسخه 6.4 افزونه برطرف شده است.
برای کشف این آسیبپذیری، به جان بلکبورن مبلغ ۱۴٬۴۰۰ دلار به عنوان پاداش اهدا شد که بالاترین مبلغ پاداش برای کشف آسیبپذیریهای وردپرس تا کنون است.
این دومین آسیبپذیری گزارش شده در این هفته است که وبسایتهای وردپرسی را تحت تاثیر قرار میدهد. بیش از ۱۰۰٬۰۰۰ وبسایت دیگر نیز به دلیل وجود یک نقص در افزونه GiveWP، که برای اهدای کمکهای مالی استفاده میشود، آسیبپذیر هستند. این نقص در نسخه 3.14.2 که در تاریخ 7 آگوست منتشر شد، برطرف شده است.
دیدگاه های مربوط به این مقاله (برای ارسال دیدگاه در سایت حتما باید عضو باشید و پروفایل کاربری شما تکمیل شده باشد)