جنگو یک فریمورک وب متن باز مبتنی بر پایتون می باشد که محبوبیت زیادی نیز دارد. این فریمورک اخیرا یه آسیب پذیری با شدت بالا رو در آخرین نسخه خود اصلاح کرده که در این پست اونو بررسی میکنیم.
آسیب پذیری از نوع SQLinjection و با شناسه CVE-2022-34265 شناخته میشه و نسخه های زیر رو تحت تاثیر قرار میده:
- Django main branch
- Django 4.1 (currently at beta status)
- Django 4.0
- Django 3.2
تخمین زده میشه ده ها هزار وب سایت از جمله برندهای محبوب در آمریکا ، این فریمورک را بعنوان چارچوب Model-Template-View خود انتخاب کردن و برای همین اعمال پچ ها بسیار مهم و حیاتیه.
امروز، تیم جنگو نسخههای Django 4.0.6 و Django 3.2.14 را منتشر کرده که آسیبپذیری SQL injection با شدت بالا را برطرف میکنه و از توسعهدهندگان میخواد که برنامه های جنگو خودشون در اسرع وقت ارتقا یا وصله کنند.
این آسیبپذیری میتونه به یک عامل تهدید اجازه حمله به برنامههای وب جنگو از طریق آرگومانهای ارائه شده به توابع Trunc(kind) و Extract(lookup_name) بده.
اگر از دادههای غیرقابل اعتماد بهعنوان مقدار kind/lookup_name استفاده بشه، توابع دیتابیس Truncو Extract تحت این آسیب پذیری قرار میگیرن.
برنامه هایی که lookup name و kind رو به یه لیست امن مشخص محدود میکنن، تحت تأثیر این آسیب پذیری قرار نمی گیرن.
به عبارت دیگر برنامه شما آسیب پذیر نیست اگر ورودی را قبل از اینکه به بعنوان آرگومان به توابع Trunc و Extract ارسال کنید، اونارو به نوعی sanitization یا escaping کنید.
برای کسانی که نمیتونن به نسخه های Django 4.0.6 یا 3.2.14 ارتقاء بدن، این تیم وصله هایی را در دسترس قرار داده که میتونن روی نسخه های آسیب دیده موجود اعمال کنن.
وصله ها را می توان از لینکهای زیر بررسی کنید:
تیم جنگو گفته : این نسخه امنیتی مشکل رو کاهش میده، اما ما بهبودهایی رو در Database API داشتیم که افزودن اونا به جنگو 4.1 قبل از انتشار نسخه نهایی میتونه مفید باشه. اما این امر تا زمانیکه که پایگاه داده های شخص ثالث این تغییرات API را اعمال کنند تاثیراتی خواهد داشت.از اینکه به زحمت می افتید پوزش میخواهیم.