- شناسه CVE-2025-27556 :CVE
- CWE-770 :CWE
- yes :Advisory
- منتشر شده: آوریل 2, 2025
- به روز شده: آوریل 2, 2025
- امتیاز: 5.8
- نوع حمله: Flooding
- اثر گذاری: Denial of Service (Dos)
- حوزه: وبسرورها
- برند: Django
- محصول: Django
- وضعیتPublished :CVE
- No :POC
- وضعیت آسیب پذیری: patch شده
چکیده
آسیبپذیری در فریمورک Django روی ویندوز امکان حمله انکار سرویس (DoS) را از طریق ورودیهایی با تعداد بسیار زیاد کاراکتر یونیکد فراهم میکند. این ضعف امنیتی به دلیل کندی فرآیند نرمال سازی NFKC در پایتون روی ویندوز ایجاد میشود و ویوهای LoginView، LogoutView و set_language را تحت تأثیر قرار میدهد. ارسال درخواستهای مخرب میتواند منابع سرور را کاملاً اشغال کرده و عملکرد آن را مختل نماید.
توضیحات
آسیبپذیری CVE-2025-27556 در فریمورک Django (فریمورک مبتنی بر پایتون برای توسعه برنامههای وب) ناشی از تخصیص منابع بدون محدودیت یا کنترل مطابق با CWE-770 است. این ضعف در ویوهای django.contrib.auth.views.LoginView، django.contrib.auth.views.LogoutView و django.views.i18n.set_language وجود دارد و علت آن کندی نرمالسازی NFKC (Normalization Form KC، استاندارد یونیکد برای یکسانسازی کاراکترهای معادل) در پیادهسازی پایتون روی سیستمعامل ویندوز است.
مهاجم میتواند از راه دور و بدون نیاز به احراز هویت یا تعامل کاربر، درخواستهایی حاوی رشتههای بسیار طولانی یا ترکیبی از کاراکترهای یونیکد (مثلاً صدها هزار کاراکتر) ارسال کند. پردازش این ورودیها زمان زیادی میطلبد و باعث مصرف شدید CPU و سایر منابع میشود؛ نتیجه نهایی میتواند حمله انکار سرویس (DoS) و اختلال در عملکرد سرور باشد. مسیر بهرهبرداری معمولاً از طریق فرمهای ورود و خروج یا درخواست تغییر زبان (set_language) انجام شده و صرفاً در محیط ویندوز است.
پیامد اصلی این آسیبپذیری تأثیر بر در دسترسپذیری با اختلال در سرویس است. این ضعف در نسخههای پشتیبانیشده 5.1.8 و 5.0.14 پچ شده است.
CVSS
| Score | Severity | Version | Vector String |
| 5.8 | MEDIUM | 3.1 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:N/A:L |
لیست محصولات آسیب پذیر
| Versions | Platforms | Product |
| affected from 5.0 before 5.0.14
affected from 5.1 before 5.1.8 |
Windows | Django |
لیست محصولات بروز شده
| Versions | Platforms | Product |
| 5.0.14
5.1.8 |
Windows | Django |
استفاده محصول در ایران
در این جدول، تعداد صفحات ایندکسشده در گوگل با دامنه .ir که djangoproject را ذکر کرده اند، ثبت شده است. این داده صرفاً برای برآورد تقریبی حضور محصولات در وب ایران استفاده شده و نمایانگر میزان نصب دقیق و استفاده واقعی نیست.
| Approx. Usage in .ir Domain via Google
(Total Pages) |
Search Query (Dork) | Product |
| 1,490 | site:.ir “djangoproject” | djangoproject |
نتیجه گیری
این آسیبپذیری با شدت متوسط در فریمورک Django روی ویندوز، ریسک حمله انکار سرویس از طریق ورودیهای طولانی یونیکد را افزایش میدهد و میتواند منجر به اختلال جدی در برنامههای وب شود. با توجه به انتشار پچ رسمی، اجرای اقدامات زیر برای جلوگیری از بهرهبرداری و کاهش ریسک ضروری است:
- بهروزرسانی فوری: تمام نصبهای Django روی ویندوز را به نسخههای 5.1.8، 5.0.14 یا بالاتر به روزرسانی کنید.
- اعمال محدودیت ورودی: در سطح اپلیکیشن، از میانافزارهای اعتبارسنجی (middleware) مانند django-ratelimit یا کتابخانههای پایتون مانند bleach برای محدود کردن طول رشتههای ورودی (مثلاً حداکثر 10,000 کاراکتر در فیلدهای فرم) استفاده کنید.
- نظارت بر منابع: ابزارهایی مانند Prometheus، Grafana یا New Relic را برای نظارت مصرف CPU و زمان پاسخدهی درخواستها استفاده کنید و هشدار برای افزایش ناگهانی زمان پردازش (بیش از 5 ثانیه در هر درخواست) تنظیم نمایید.
- ایزولهسازی محیط: برنامههای Django را در کانتینرهای جداگانه (مانند Docker) با محدودیت منابع CPU و حافظه اجرا کنید تا تأثیر حملات محدود شود.
- فایروال اپلیکیشن وب (WAF): از WAFهایی مانند ModSecurity یا Cloudflare برای فیلتر کردن درخواستهای حاوی کاراکترهای یونیکد غیرعادی یا حجم بالای ورودی استفاده کنید.
- تست نفوذ دورهای: سناریوهای DoS مبتنی بر یونیکد را با ابزارهایی مانند Locust یا custom Python scripts در محیط staging شبیهسازی کنید و عملکرد NFKC را در ویندوز تست نمایید.
- مدیریت پیکربندی: از اجرای Django در حالت دیباگ (DEBUG=True) در محیط تولید خودداری کنید و اصل حداقل دسترسی (Least Privilege) را برای کاربران وبسرور اعمال نمایید.
- آموزش توسعهدهندگان: تیم توسعه را نسبت به ریسکهای پردازش ورودیهای یونیکد روی ویندوز آگاه سازید و از استفاده ایمن از فرمها و ویوهای احراز هویت اطمینان حاصل کنید.
اجرای این اقدامات، بهویژه بهروزرسانی سریع و محدودیت طول ورودیها، ریسک بهرهبرداری از این آسیبپذیری متوسط و تبدیل آن به اختلال گسترده را بهطور چشمگیری کاهش داده و امنیت برنامههای وب مبتنی بر Django را تقویت میکند.
امکان استفاده در تاکتیک های Mitre Attack
Initial Access (TA0001)
مهاجم نیازی به دسترسی مدیریتی ندارد — حمله از راه دور و بدون احراز هویت انجام میشود با ارسال درخواستهای HTTP حاوی رشتههای بسیار طولانی یا مجموعههای غیرعادی یونیکد که در ویوهای Login/Logout/set_language پردازش میشوند؛ بنابراین نقطه ورود واقعی «هر سرویس وب Django روی ویندوز» است که ورودی را بدون محدودیت طول پردازش میکند.
Defense Evasion (TA0005)
مهاجم با ارسال درخواستهای پراکنده یا تغییرات یونیکد میتواند از قوانین ساده عبور کند.
Impact (TA0040)
کاهش / قطع سرویس (Availability) برای مسیرهای auth و قابلیت تغییر تجربهی کاربری و در نهایت اختلال در فرآیندهای ورود/خروج و تغییر زبان
منابع
- https://www.cve.org/CVERecord?id=CVE-2025-27556
- https://www.cvedetails.com/cve/CVE-2025-27240/
- http://www.openwall.com/lists/oss-security/2025/04/02/2
- https://vulmon.com/vulnerabilitydetails?qid=CVE-2025-27556
- https://vuldb.com/?id.303007
- https://docs.djangoproject.com/en/dev/releases/security/
- https://groups.google.com/g/django-announce
- https://www.djangoproject.com/weblog/2025/apr/02/security-releases/
- https://nvd.nist.gov/vuln/detail/cve-2025-27556