یک آسیبپذیری از نوع Stored Cross-Site Scripting (XSS) در پروژه CloudClassroom-PHP-Project شناسایی شده است که به مهاجم اجازه میدهد از طریق پارامتر fname در فایل addnewstudent.php، کدهای مخرب خود را تزریق کند.
این آسیبپذیری زمانی رخ میدهد که دادههای ورودی بدون انجام عملیات Output Encoding در پایگاه داده ذخیره شده و متعاقباً هنگام نمایش در مرورگر کاربر، بدون پاکسازی اجرا میشوند. اگرچه بر اساس بردار CVSS 4.0، سطح دسترسی مورد نیاز برای حمله Unauthenticated (بدون احراز هویت) گزارش شده است، اما با توجه به ماهیت فایل addnewstudent.php که یک تابع مدیریت رکورد است، احتمال دارد در محیطهای عملیاتی واقعی، مهاجم نیاز به یک نشست (Session) فعال داشته باشد؛ موضوعی که باید در پیادهسازیهای خاص بررسی شود.
جزئیات فنی و اثرات
- مکانیزم حمله: مهاجم یک مقدار حاوی اسکریپت جاوااسکریپت را در فیلد نام (fname) وارد میکند. با مشاهده این داده توسط مدیر سیستم یا سایر کاربران، اسکریپت در مرورگر قربانی اجرا میشود.
- پیامدهای امنیتی: این حمله میتواند منجر به سرقت کوکیها (Cookie Theft)، سرقت نشستها (Session Hijacking) و انجام اقدامات غیرمجاز در بستر کاربر قربانی شود.
- امتیاز CVSS: امتیاز پایه CVSS 4.0 برابر با 5.3 (Medium) ارزیابی شده است که نشاندهنده تأثیر محدود بر یکپارچگی (Integrity) سیستم است و تأثیری بر محرمانگی (Confidentiality) یا در دسترس بودن (Availability) ندارد.
راهکارهای مقابله
از آنجایی که این پروژه به صورت Rolling Release منتشر میشود و سازنده هنوز پاسخی به گزارشهای امنیتی نداده است، هیچ وصله (Patch) رسمی در دسترس نیست. متخصصان توصیه میکنند اقدامات زیر را انجام دهند:
- پیادهسازی Output Encoding: اعمال HTML-escaping بر روی تمامی مقادیر ذخیره شده در هنگام نمایش آنها در صفحات وب برای جلوگیری از اجرای اسکریپتها.
- کنترل دسترسی: محدود کردن دسترسی به فایل
addnewstudent.phpتنها برای نقشهای مدیریتی یا از طریق لیستهای سفید (Allowlist) شبکه جهت کاهش سطح حمله (Attack Surface). - پاکسازی دادهها: بررسی و پاکسازی رکوردهای موجود در پایگاه داده برای حذف مقادیر مخرب احتمالی که پیش از کشف آسیبپذیری ذخیره شدهاند.