آسیب پذیری ارتقای سطح دسترسی در فریمورک Django

آسیب پذیری ارتقای سطح دسترسی در فریمورک Django

تاریخ ایجاد

آسیب پذیری ارتقای سطح دسترسی در فریمورک Django این #‫آسیب‌پذیری با درجه حساسیت بالا در فریمورک معروف DJANGOبا شناسه CVE-2019-19118 در 11 آذر 1398 منتشر شد. مهاجم با بهره برداری از این آسیب‌پذیری می‌تواند سطح دسترسی‌خود را ارتقا داده و دست به عملیات غیرمجاز بزند. نسخه‌های قبل از 2.2.8 و 2.1.5 این فریمورک آسیب‌پذیر هستند.
از نسخه 2.1 DJANGOبه بعد در یک مدل آدمین DJANGO که یک مدل PARENT با مدل‌هایINLINE مرتبطش را نمایش می‌دهد، کاربر اجازه تغییر در مدل PARENT را ندارد اما می‌تواند مدل INLINE را ویرایش کند؛ در نتیجه یک VIEWفقط-خواندنی برای مدل PARENT و یک فرم قابل ویرایش برای مدل INLINEنمایش داده می‌شود.
این فرم‌ها اجازه تغییرات مستقیم در مدل PARENT را نمی‌دهد اما تابع SAVE() مدل PARENT را فراخوانی می‌کند و متعاقباً سبب فراخوانی سیگنال HANDLERهای قبل و بعد از ذخیره‌سازی می‌شوند. به عنوان کاربری که اجازه‌ی تغییر یک مدل خاص را ندارد و به دنبال آن نباید اجازه فراخوانی سیگنال‌های مربوط به ذخیره‌سازی را داشته باشد، این یک ارتقای سطح دسترسی محسوب می‌شود.
برای رفع این آسیب‌پذیری کد رابط آدمین DJANGOکه مجوزها را کنترل می‌کند تغییر کرده است. آن دسته از برنامه نویسانی که برنامه‌هایشان تحت تاثیر این تغییر قرار گرفته است بایستی INLINEهای استفاده شده در مدل‌های PARENTرا با فرم‌ها وVIEW هایی که عملکردشان بطور صریح پیاده‌سازی شده است، جایگزین کنند.
جدول زیر اطلاعات مربوط به نسخه‌های آسیب‌پذیر و غیرآسیب‌پذیر PYTHON-DJANGO را نشان می‌دهد:
 

Django

برای اطلاعات بیشتر در مورد این آسیب‌پذیری به لینک زیر مراجعه نمایید:

https://security-tracker.debian.org/tracker/CVE-2019-19118

برچسب‌ها