- شناسه CVE-2025-64460 :CVE
- CWE-407 :CWE
- yes :Advisory
- منتشر شده: دسامبر 2, 2025
- به روز شده: دسامبر 2, 2025
- امتیاز: 7.5
- نوع حمله: Denial of Service
- اثر گذاری: Denial of Service (Dos)
- حوزه: برنامه نویسی
- برند: djangoproject
- محصول: Django
- وضعیتPublished :CVE
- No :POC
- وضعیت آسیب پذیری: patch شده
چکیده
آسیبپذیری انکار سرویس (DoS) در فریمورک Django ناشی از پیچیدگی الگوریتمی (Algorithmic Complexity) درتابع django.core.serializers.xml_serializer.getInnerText() است. این ضعف امنیتی به مهاجم از راه دور اجازه میدهد با ارسال ورودی XML دستکاریشده و پیچیده، مصرف CPU و حافظه سرور را بهطور غیرعادی افزایش داده و منجر به افت شدید عملکرد یا توقف کامل سرویس (Service Outage) شود.
توضیحات
آسیبپذیری CVE-2025-64460 در فریمورک Django ناشی از وجود پیچیدگی الگوریتمی ناکارآمد (Inefficient Algorithmic Complexity) مطابق با CWE-407 در تابع django.core.serializers.xml_serializer.getInnerText() است. این تابع که بخشی از ماژول XML serializer است، هنگام پردازش و سریالزدایی XML (XML Deserialization) وظیفه استخراج متن داخلی (Inner Text) از نودهای XML را بر عهده دارد.
ضعف اصلی در نحوه پیادهسازی این تابع نهفته است. در جریان استخراج متن، تابع از اتصال مکرر رشتهها (Repeated String Concatenation) در قالب یک فرآیند بازگشتی (Recursive) برای پیمایش ساختار XML استفاده میکند. این رویکرد در مواجهه با ساختارهای XML عمیق و تو در تو، منجر به بروز پیچیدگی زمانی و حافظهای فوقخطی (Superlinear Complexity) میشود؛ به این معنا که با افزایش اندازه و عمق ورودی XML، میزان مصرف پردازنده (CPU) و حافظه (RAM) بهصورت نامتناسب و قابل توجهی افزایش مییابد.
در چنین شرایطی، مهاجم راه دور که امکان ارسال داده XML به سرویسی را داشته باشد که از XML Deserializer در Django استفاده میکند (مانند رابطهای برنامهنویسی کاربردی (API) یا اندپوینت که ورودی XML را پردازش میکنند) میتواند با ارسال XML دستکاریشده و پیچیده، سرور را به انجام محاسبات سنگین و مصرف شدید منابع وادار کند. نتیجه این حمله، مصرف بیش از حد منابع سیستم (CPU و حافظه) و در نهایت کاهش شدید عملکرد سرویس (Service Degradation)، افزایش زمان پاسخدهی یا حتی توقف کامل سرویس (Service Outage) خواهد بود که مصداق یک حمله انکار سرویس (DoS) است.
بهرهبرداری از این آسیبپذیری بدون نیاز به احراز هویت انجام میشود و صرفاً دسترسی شبکهای به اندپوینت آسیبپذیر برای اجرای حمله کافی است. با توجه به ماهیت این ضعف، حمله بهسادگی قابل خودکارسازی بوده و مهاجم میتواند با ارسال مکرر درخواستهای حاوی XML مخرب، در مدت کوتاهی سرویس هدف را دچار اختلال جدی کرده یا آن را از دسترس خارج کند.
توسعهدهندگان Django برای رفع این ضعف، منطق پیادهسازی استخراج متن را اصلاح کرده و با استفاده از روشهای کارآمدتر در مدیریت و پردازش رشتهها، از رشد غیرخطی مصرف منابع جلوگیری کردهاند. این اصلاحات در نسخههای 5.2.9، 5.1.15 و 4.2.27 اعمال شده است و به کاربران اکیداً توصیه میشود برای جلوگیری از سوءاستفاده، هرچه سریعتر به نسخههای پچشده بهروزرسانی کنند.
CVSS
| Score | Severity | Version | Vector String |
| 7.5 | HIGH | 3.1 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H |
لیست محصولات آسیب پذیر
| Versions | Product |
| affected from 5.2 before 5.2.9
affected from 5.1 before 5.1.15 affected from 4.2 before 4.2.27 |
Django |
لیست محصولات بروز شده
| Versions | Product |
| unaffected at 5.2.9
unaffected at 5.1.15 unaffected at 4.2.27 |
Django |
استفاده محصول در ایران
در این جدول، تعداد صفحات ایندکسشده در گوگل با دامنه .ir که Django را ذکر کرده اند، ثبت شده است. این داده صرفاً برای برآورد تقریبی حضور محصولات در وب ایران استفاده شده و نمایانگر میزان نصب دقیق و استفاده واقعی نیست.
| Approx. Usage in .ir Domain via Google
(Total Pages) |
Search Query (Dork) | Product |
| 173,000 | site:.ir “Django” | Django |
نتیجه گیری
این آسیبپذیری با شدت بالا در فریمورک Django امکان اجرای حمله انکار سرویس از راه دور را بدون نیاز به احراز هویت فراهم میکند و میتواند منجر به مصرف بیش از حد منابع سیستم (پردازنده و حافظه) و در نهایت توقف کامل سرویس شود. با توجه به انتشار پچ رسمی توسط تیم توسعه Django، اجرای اقدامات زیر برای جلوگیری از سوءاستفاده و کاهش ریسک امنیتی ضروری است:
- بهروزرسانی فوری: تمامی پروژههای مبتنی بر Django را در اسرع وقت به نسخههای 2.9، 5.1.15، 4.2.27 یا بالاتر بهروزرسانی کنید. این اقدام مؤثرترین و قطعیترین راهکار برای رفع آسیبپذیری است و باید در اولویت قرار گیرد. سایر اقدامات نقش مکمل را دارند و میتوانند به کاهش ریسک این آسیب پذیری و مقابله با حملات مشابه کمک کنند.
- محدودسازی ورودی XML: در صورتی که از سریالزدایی XML استفاده میشود، اندازه و پیچیدگی ورودیهای XML را محدود کنید؛ برای مثال از میانافزار (Middleware) یا پیکربندی وبسرور مانند محدودیت اندازه بدنه درخواست (Max Request Body Size) در Nginx یا Apache استفاده کنید. همچنین توصیه میشود از کتابخانههای امنتر مانند defusedxml برای پردازش XML استفاده شود که در برابر حملات مبتنی بر پیچیدگی الگوریتمی محافظت بهتری ارائه میدهند.
- غیرفعال کردن XML Deserializer در صورت عدم نیاز: اگر پروژه شما نیازی به پردازش XML ندارد، قابلیت XML Deserializer را بهطور کامل از پیکربندی حذف یا غیرفعال کنید تا سطح حمله کاهش یابد.
- مانیتورینگ و تشخیص: از سیستمهای تشخیص نفوذ (IDS) و مانیتورینگ منابع مانند Prometheus، New Relic یا ابزارهای داخلی نظیر Django Debug Toolbar برای شناسایی افزایش غیرعادی مصرف پردازنده و حافظه استفاده کنید. همچنین لاگهای سرور را بهطور منظم بررسی نمایید تا الگوهای مشکوک مربوط به درخواستهای XML شناسایی شوند.
- محدودسازی دسترسی شبکه: دسترسی به اندپوینت های حساس بهویژه آنهایی که XML پردازش میکنند را با فایروال، شبکههای خصوصی مجازی (VPN) یا شبکههای خصوصی ابری (VPC) محدود کنید و تنها به آدرسهای IP مورد اعتماد اجازه دسترسی دهید.
- بهروزرسانی وبسرور و میان افزارها: از نسخههای بهروز وبسرورها و سرورهای اجرای برنامه مانند Nginx، Apache و Gunicorn استفاده کنید و تنظیماتی مانند محدودسازی نرخ درخواست (Rate Limiting) و محدودیت اندازه درخواست (Request Size Limit) را اعمال نمایید تا اجرای حملات انکار سرویس عمومی دشوارتر شود.
اجرای سریع بهروزرسانی رسمی همراه با محدودسازی ورودیهای XML و مانیتورینگ مداوم منابع سیستم، ریسک ناشی از این آسیبپذیری را به حداقل رسانده و پایداری و دسترسپذیری برنامههای مبتنی بر Django را تضمین میکند.
امکان استفاده در تاکتیک های Mitre Attack (در زمان اجرای حمله)
Initial Access (TA0001)
در سناریوی بهرهبرداری از CVE-2025-64460، امکان استفاده از تاکتیک دسترسی اولیه زمانی فراهم میشود که سرویس مبتنی بر Django دارای اندپوینتی باشد که ورودی XML را از طریق شبکه دریافت و مستقیماً برای پردازش به ماژول XML serializer ارسال کند. در جریان حمله، مهاجم با ارسال یک درخواست عادی از نظر پروتکل اما حاوی محتوای XML با ساختار عمیق و تودرتو، بدون نیاز به احراز هویت یا تعامل خاص، مسیر ورود خود را به منطق آسیبپذیر باز میکند. شرط لازم برای تحقق این مرحله آن است که پردازش XML در لایه برنامه فعال بوده، محدودیت معناداری روی اندازه یا عمق XML اعمال نشده باشد و سرویس در دسترس شبکه عمومی یا نیمهعمومی قرار داشته باشد؛ در چنین وضعیتی، دسترسی اولیه نه با دور زدن کنترل امنیتی، بلکه با سوءاستفاده از رفتار مجاز برنامه حاصل میشود و بستر لازم برای مراحل بعدی حمله فراهم میگردد.
Impact (TA0040)
پیامد نهایی بهرهبرداری از این آسیبپذیری در چارچوب تاکتیک تأثیرگذاری، به شکل انکار سرویس بروز میکند؛ جایی که پردازش مکرر و پرهزینه XMLهای پیچیده باعث اشباع تدریجی یا ناگهانی منابع CPU و حافظه سرور میشود. در این وضعیت، حتی بدون ایجاد خطای مستقیم در برنامه، سرویس با افت شدید کارایی، افزایش زمان پاسخدهی یا از دسترس خارج شدن کامل مواجه خواهد شد. نکته قابل توجه این است که اثر حمله وابسته به تخریب داده یا نفوذ عمیق نیست، بلکه صرفاً با تحمیل بار محاسباتی نامتعارف، تداوم ارائه خدمت مختل میشود و در محیطهای تولیدی میتواند منجر به نارضایتی کاربران، اختلال در سرویسهای وابسته و حتی توقف زنجیرهای سامانههای دیگر گردد.
منابع
- https://www.cve.org/CVERecord?id=CVE-2025-64460
- https://www.cvedetails.com/cve/CVE-2025-64460/
- https://docs.djangoproject.com/en/dev/releases/security/
- https://www.djangoproject.com/weblog/2025/dec/02/security-releases/
- https://vulmon.com/vulnerabilitydetails?qid=CVE-2025-64460
- https://vuldb.com/?id.334083
- https://nvd.nist.gov/vuln/detail/CVE-2025-64460
- https://cwe.mitre.org/data/definitions/407.html