آخرین اخبار
همهٔ اخبار
مدیریت آسیب‌پذیری گزارش بحرانیت ۵/۱۰

کشف آسیب‌پذیری RCE در کتابخانه Django Haystack؛ خطر اجرای کد از راه دور

کشف آسیب‌پذیری RCE در کتابخانه Django Haystack؛ خطر اجرای کد از راه دور

یک آسیب‌پذیری امنیتی در کتابخانه django-haystack در نسخه‌های تا 3.3.0 شناسایی شده است که امکان اجرای کد از راه دور (Remote Code Execution یا RCE) را فراهم می‌کند. این نقص امنیتی در تابع _to_python در فایل haystack/backends/elasticsearch_backend.py و در بخش مدیریت تگ more_like_this قرار دارد.

جزئیات فنی و مکانیسم حمله

در این آسیب‌پذیری، دستکاری آرگومان result_class منجر به خنثی‌سازی نادرست دستورات در کدهای ارزیابی‌شده به صورت پویا (Dynamically Evaluated Code) می‌شود. در واقع، یک رشته تحت کنترل مهاجم در مسیر Deserialization نتایج به تابع eval() ارسال شده و در محیط پردازش اپلیکیشن Django اجرا می‌گردد.

شرایط بهره‌برداری (Exploitation)

بهره‌برداری از این نقص امنیتی به صورت کلی نیست و نیازمند شرایط خاصی است:

  • استفاده از بک‌اند Elasticsearch.
  • تعریف حداقل یک SearchField با یک نام مستعار (Alias) برای index_fieldname که با نام منطقی فیلد متفاوت باشد.
  • توانایی تزریق یک Payload مخرب به آن فیلد مستعار و بازگرداندن آن در یک جستجوی بعدی (حمله از نوع Second-order یا Stored Injection).

راهکار اصلاحی

برای رفع این مشکل، توصیه می‌شود تمامی کاربران این کتابخانه سریعاً به نسخه 3.4.0 ارتقا دهند. این نسخه شامل پچ اصلاحی لازم برای بستن این حفره امنیتی است.