- شناسه CVE-2025-26699 :CVE
- CWE-770 :CWE
- yes :Advisory
- منتشر شده: مارس 6, 2025
- به روز شده: مارس 6, 2025
- امتیاز: 5.0
- نوع حمله: Denial of Service
- اثر گذاری: Denial of Service (Dos)
- حوزه: نرم افزارهای کاربردی
- برند: djangoproject
- محصول: Django
- وضعیتPublished :CVE
- No :POC
- وضعیت آسیب پذیری: patch شده
چکیده
آسیبپذیری در فریمورک وب Django، امکان حمله انکار سرویس (DoS) را از طریق رشتههای بسیار طولانی فراهم میکند. این ضعف در متد django.utils.text.wrap() و فیلتر قالب wordwrap رخ میدهد و زمانی که رشتههای بسیار طولانی پردازش شوند، منابع سرور بهسرعت مصرف شده و سرویسهای مبتنی بر Django دچار اختلال میشوند.
توضیحات
آسیبپذیری CVE-2025-26699 در فریمورک Django (فریم ورک مبتنی بر پایتون برای توسعه برنامههای وب) ناشی از تخصیص منابع بدون محدودیت یا کنترل است و مطابق با CWE-770 طبقهبندی میشود. این ضعف در متد django.utils.text.wrap() و فیلتر قالب wordwrap وجود دارد، جایی که پردازش رشتههای بسیار طولانی بدون اعمال محدودیتهای مناسب، منجر به اشباع منابع (resource exhaustion) مانند مصرف بیش از حد حافظه یا زمان CPU میشود.
این ضعف بهسادگی قابل خودکارسازی است؛ مهاجم میتواند با ابزارهای خودکار مانند اسکریپتهای پایتون یا ابزارهای تست مانند Burp Suite، بهصورت از راه دور و بدون نیاز به تعامل کاربر، درخواستهای مکرر با رشتههای بزرگ (مانند رشتههای 1 مگابایتی یا بیشتر) ارسال کند و منجر به توقف موقت یا کامل سرویس شود. بهرهبرداری بر اساس سیستم قالبهای Django (Template System، مکانیزمی برای تولید صفحات پویا) و ماژول text (برای پردازش متن) عمل میکند. گزارشها نشان میدهد که مهاجم میتواند با ورودیهای ساده مانند فیلدهای فرم یا پارامترهای URL، حمله را اجرا کند.
پیامد اصلی این آسیبپذیری تأثیر بر در دسترسپذیری با اختلال جزئی در سرویس است. این ضعف در شاخه های پشتیبانی شده Django شامل نسخه های 4.2.20، 5.0.13 و 5.1.7 پچ شده است.
CVSS
| Score | Severity | Version | Vector String |
| 5.0 | MEDIUM | 3.1 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:N/I:N/A:L |
لیست محصولات آسیب پذیر
| Versions | Product |
| affected from 4.2 before 4.2.20
affected from 5.0 before 5.0.13 affected from 5.1 before 5.1.7 |
Django |
لیست محصولات بروز شده
| Versions | Product |
| 4.2.20
5.0.13 5.1.7 |
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.7، 5.0.13، 4.2.20 یا بالاتر به روزرسانی کنید.
- اعمال محدودیتهای ورودی: در سطح اپلیکیشن، از میان افزارهای (middleware) اعتبارسنجی مانند django-ratelimit یا کتابخانههای پایتون مانند bleach برای محدود کردن طول رشتههای ورودی (مثلاً حداکثر KB10) استفاده کنید و فیلترهای wordwrap را تنها در زمینههای کنترلشده بهکار گیرید.
- نظارت بر منابع: ابزارهایی مانند Prometheus یا New Relic را برای نظارت بر مصرف CPU و حافظه سرور پیکربندی کنید و میزان حساسیت هشدار برای spikeهای ناگهانی (مانند بیش از 80% استفاده از حافظه) تعریف نمایید تا حملات DoS سریع تر شناسایی شوند.
- ایزولهسازی و دفاع لایهای: از فایروال اپلیکیشن وب (WAF) مانند ModSecurity یا Cloudflare برای فیلتر کردن درخواستهای مشکوک با رشتههای طولانی استفاده کنید و اتصالات را از طریق CDN محدود نمایید تا حملات توزیعشده کاهش یابد.
- تست نفوذ دورهای: سناریوهای DoS را با ابزارهایی مانند Apache Bench (ab) یا Locust در محیطهای staging شبیه سازی کرده تا مقاومت اپلیکیشن در برابر رشتههای طولانی ارزیابی شود؛ همچنین، کدهای سفارشی که از wrap() استفاده میکنند را بازبینی نمایید.
- مدیریت پیکربندی: گزینههای پیشفرض Django را بررسی کنید و از اصل حداقل دسترسی (Least Privilege) برای کاربران وبسرور پیروی نمایید تا تأثیر حملات محدود شود.
- آموزش توسعهدهندگان: تیمهای توسعه را نسبت به ریسکهای DoS در پردازش ورودیهای کاربر آموزش داده و اطمینان حاصل کنید که سیاستهای امنیتی Django رعایت میشوند.
اجرای این اقدامات، بهویژه بهروزرسانی سریع و اعمال محدودیتهای ورودی، ریسک تبدیل این ضعف متوسط به اختلال گسترده را بهطور قابل توجهی کاهش میدهد و امنیت برنامههای وب مبتنی بر Django را تقویت میکند.
امکان استفاده در تاکتیک های Mitre Attack
Initial Access (TA0001)
آسیبپذیری CVE-2025-26699 در فریمورک Django امکان بهرهبرداری از راه دور بدون نیاز به احراز هویت را فراهم میکند، اما مهاجم برای آغاز حمله نیازمند ارسال رشتههای طولانی از طریق فرمها یا پارامترهای URL است.
Impact (TA0040)
اثرات اصلی این آسیبپذیری محدود به Availability است. پردازش رشتههای طولانی موجب مصرف بیش از حد منابع سرور میشود و سرویسهای مبتنی بر Django دچار اختلال موقت یا کامل میشوند. بهروزرسانی به نسخههای امن، اعمال محدودیتهای ورودی و نظارت بر منابع باعث کاهش قابل توجه این ریسک میشود.
منابع
- https://www.cve.org/CVERecord?id=CVE-2025-26699
- https://www.cvedetails.com/cve/CVE-2025-26699/
- https://www.djangoproject.com/weblog/2025/mar/06/security-releases/
- https://vulmon.com/vulnerabilitydetails?qid=CVE-2025-26699
- https://vuldb.com/?id.298873
- https://docs.djangoproject.com/en/dev/releases/security/
- https://groups.google.com/g/django-announce
- http://www.openwall.com/lists/oss-security/2025/03/06/12
- https://lists.debian.org/debian-lts-announce/2025/03/msg00012.html
- https://nvd.nist.gov/vuln/detail/CVE-2025-26699
- https://cwe.mitre.org/data/definitions/770.html