کشف آسیب‌پذیری در بسته نرم‌افزاری Codelyfe Stupid Simple CMS

کشف آسیب‌پذیری در بسته نرم‌افزاری Codelyfe Stupid Simple CMS

تاریخ ایجاد

به تازگی، محققان امنیتی موفق به کشف یک آسیب‌پذیری بحرانی (10) و شناسه CVE-2023-6901 در نرم‌افزارStupid Simple CMS  شده‌اند. Stupid Simple CMS  یک برنامه Open Source است که به کاربران این امکان را می‌دهد که بدون استفاده از پایگاه داده، پستی را در وبلاگشان ایجاد و مدیریت کنند. در واقع این نرم‌افزار برای تسریع و آسان نمودن کار با وبلاگ طراحی شده است. کاربران می‌توانند تنظیمات سایت، محتوای متن، طرح‌بندی و سبک وبلاگ خود را با استفاده از فایل‌های XML و PHP ویرایش کنند. با توجه به این که برای این برنامه کاربردی هیچ وب‌سایت رسمی وجود ندارد، جهت دریافت آن، فقط دو مخزن GitHub با حداقل فایل README. وجود دارد. همچنین هیچ راهنمای نصب، راهنمای کاربر، مرجع   API  یا راهنمای توسعه‌دهنده‌ای برای این برنامه وجود ندارد.
مهاجم می‌تواند یک پست درخواست HTTP مخرب را به فایل /terminal/handle-command.php ارسال کند و دستورات دلخواه سیستم‌عامل را در پارامتر فرمان، تزریق کند. دستورات بدون هیچ گونه اعتبارسنجی یا پاکسازی روی سرور اجرا می‌شوند و مهاجم کنترل کامل سرور را در دست خواهد گرفت.
این آسیب‌پذیری خطری جدی برای امنیت و یکپارچگی وب‌سایتی است که از نرم‌افزار Stupid Simple CMS Plus  استفاده می‌کند. مهاجم می‌تواند از این آسیب‌پذیری جهت سرقت داده‌های حساس، نصب بدافزار، حذف فایل‌ها یا انجام هر گونه اقدام مخرب دیگری بر روی سرور استفاده کند. همچنین این آسیب‌پذیری وب‌سایت را در معرض حملات دیگری مانند منع سرویس، تزریق کد SQL و کد نویسی بین سایتی قرار می‌دهد و می‌تواند سایر برنامه‌ها یا سرویس‌هایی را که روی همان سرور اجرا می‌شوند یا حتی سرورهای دیگر همان شبکه را تحت تأثیر قرار دهد. نمونه این نقص امنیتی در کد زیر قابل مشاهده است.

1


این کد، یک پست درخواست HTTP را به عنوان مقدار پارامتر فرمان به URL هدف ارسال می کند. سرور این دستور را بدون هیچ گونه اعتبارسنجی اجرا می‌کند و خروجی دستور را به عنوان پاسخ برمی‌گرداند. در این حالت، در خروجی نام کاربری که سرور وب را اجرا می‌کند، مانند “www-data” یا “apache”  خواهد بود که نشان می‌دهد مهاجم می‌تواند هر دستوری را روی سرور اجرا کند و نتیجه را برگرداند.
این نقص به دلیل استفاده نادرست از تابع 'shell_exec()' در اسکریپت PHP به وجود می‌آید که دستورات شبیه‌ساز ترمینال را کنترل می‌کند. تابع 'shell_exec()' دستوری را روی سرور اجرا می‌کند و خروجی را به صورت رشته برمی‌گرداند. اسکریپت PHP ورودی کاربر را از پست درخواست می‌گیرد و آن را مستقیماً و بدون هیچ‌گونه اعتبارسنجی به تابع «shell_exec()» ارسال می‌کند. این بدان معناست که ورودی کاربر به عنوان یک فرمان در نظر گرفته و بدون توجه به محتوای آن در سرور اجرا می‌شود.
 

2

محصولات آسیب‌پذیر
تمامی نسخه‌های قبل از 1.1.7 تا  1.2.3نرم‌افزارStupid Simple CMS  تحت تأثیر این آسیب‌پذیری قرار دارند.

توصیه‌های امنیتی
در حال حاضر تنها راه جلوگیری از مخاطرات احتمالی این آسیب‌پذیری، غیرفعال کردن یا حذف ویژگی شبیه‌ساز ترمینال از نرم‌افزار یا استفاده از یک CMS متفاوت است.

منابع خبر:


[1] https://github.com/g1an123/POC/blob/main/README.md
[2] https://vuldb.com/?ctiid_248259=
[3] https://www.incibe.es/en/incibe-cert/early-warning/vulnerabilities/cve-2023-6901