منوی رادکام

آسیب‌پذیری جدید Django و Frappe تهدیدی جدی برای امنیت پایگاه‌داده‌ها

آسیب‌پذیری جدید Django و Frappe تهدیدی جدی برای امنیت پایگاه‌داده‌ها
دو رخنه جدید در فریم‌ورک‌های Django و Frappe گزارش شده که هر دو امکان SQL Injection را در شرایط خاص فراهم می‌کنند. این ضعف‌ها می‌توانند به افشای داده، دستکاری کوئری‌ها یا افشای اطلاعات نسخه منجر شوند. توسعه‌دهندگان موظف‌اند فوراً نسخه‌های امن منتشرشده را نصب کنند.

آسیب‌پذیری CVE-2025-13372 در Django و آسیب‌پذیری CVE-2025-66205 در فریم‌ورک Frappe به‌عنوان دو تهدید جدی SQL Injection شناسایی شده‌اند. در Django، مشکل در قابلیت FilteredRelation و استفاده از alias در QuerySet باعث تزریق SQL می‌شود. در Frappe، اعتبارسنجی ناکافی پارامترها در یکی از endpointها امکان استخراج اطلاعات و تزریق SQL را برای مهاجم فراهم می‌کند. هر دو مورد در نسخه‌های جدید رفع شده و ارتقا فوراً توصیه می‌شود.

۱. موج جدید آسیب‌پذیری‌های مرتبط با SQL Injection

SQL Injection همچنان یکی از شناخته‌شده‌ترین و پرتکرارترین ضعف‌های امنیتی در اپلیکیشن‌های وب است. در هفته جاری، دو آسیب‌پذیری مهم با شناسه‌های CVE-2025-13372 و CVE-2025-66205 در دو فریم‌ورک مهم—Django و Frappe—گزارش شده‌اند. هر دو فریم‌ورک در هزاران پروژه تجاری، دولتی و سازمانی مورد استفاده قرار می‌گیرند و هرگونه نقص امنیتی در آن‌ها می‌تواند دامنه گسترده‌ای از کاربران را تحت تأثیر قرار دهد.

در هر دو رخنه، امکان تزریق SQL تحت شرایط خاص وجود دارد و ممکن است مهاجم بتواند کوئری‌های پایگاه‌داده را تغییر دهد یا به داده‌های حساس دسترسی پیدا کند.

۲. آسیب‌پذیری CVE-2025-13372 در Django

۲.۱. جزئیات فنی رخنه

این آسیب‌پذیری در نسخه‌های زیر از Django مشاهده شده است:

  • سری ۵.۲ قبل از نسخه ۵.۲.۹
  • سری ۵.۱ قبل از نسخه ۵.۱.۱۵
  • سری ۴.۲ قبل از نسخه ۴.۲.۲۷

ضعف امنیتی در ویژگی FilteredRelation ایجاد می‌شود. مهاجم می‌تواند با استفاده از یک دیکشنری دست‌کاری‌شده و استفاده از **kwargs در متدهای QuerySet.annotate() و QuerySet.alias() ستون‌ها را با aliasهای مخرب تزریق کند.

این مشکل تنها زمانی بروز می‌کند که پایگاه‌داده PostgreSQL باشد.

ریشه آسیب‌پذیری

  • پردازش aliasها در QuerySet
  • فقدان پاک‌سازی و خنثی‌سازی مناسب ورودی
  • امکان تزریق محتوای مخرب در لایه ORM

این ضعف در دسته‌بندی CWE-89 (SQL Injection) قرار گرفته است.

۲.۲. نسخه‌های امن منتشرشده

Django در تاریخ ۲ دسامبر ۲۰۲۵ نسخه‌های امن زیر را منتشر کرد:

  • 5.2.9
  • 5.1.15
  • 4.2.27

نسخه‌های قدیمی‌تر (۵.0، ۴.1، ۳.2) بررسی نشده‌اند و ممکن است آسیب‌پذیر باشند.

اقدام ضروری

به‌روزرسانی فوری Django به آخرین نسخهٔ امن توصیه می‌شود.

۳. آسیب‌پذیری CVE-2025-66205 در Frappe Framework

۳.۱. شرح رخنه

این آسیب‌پذیری در یکی از endpointهای فریم‌ورک Frappe به دلیل فقدان اعتبارسنجی مناسب پارامترها ایجاد شده است. مهاجم می‌تواند با ارسال مقدارهای خاص، خطاهای پایگاه‌داده را القا و از آن‌ها برای SQL Injection استفاده کند (Error-based SQL Injection).

نسخه‌های آسیب‌پذیر

  • تمام نسخه‌های Frappe قبل از 15.86.0
  • تمام نسخه‌های Frappe قبل از 14.99.2
  • نسخه‌های بین 15.0.0 تا 15.86.0 نیز آسیب‌پذیر هستند

۳.۲. سطح خطر

این ضعف به‌عنوان High Severity طبقه‌بندی شده است، زیرا می‌تواند:

  • اطلاعات نسخه یا ساختار پایگاه‌داده را افشا کند
  • راه را برای حملات قدرتمند‌تر SQL Injection باز کند
  • به مهاجم دید کافی برای استخراج بیشتر داده بدهد

۳.۳. وصله امنیتی

رفع مشکل در commit منتشر شده github قابل دسترسی می‌باشد.

۴. تحلیل امنیتی مشترک این دو رخنه

۴.۱. چرا این آسیب‌پذیری‌ها مهم هستند؟

هر دو رخنه در دو فریم‌ورک محبوب گزارش شده‌اند و اشتراک فنی آن‌ها، امکان تزریق SQL از طریق پردازش نامناسب پارامترها است.

SQL Injection می‌تواند به موارد زیر منجر شود:

  • نشت داده‌های حساس کاربران
  • دستکاری داده‌ها
  • دسترسی غیرمجاز
  • اجرای کوئری‌های پیشرفته توسط مهاجم
  • نابودی یا تغییر شکل پایگاه‌داده

۴.۲. سناریوهای خطرناک

  • مهاجم یک alias مخرب در QuerySet Django تعریف می‌کند
  • یک درخواست دست‌کاری‌شده به endpoint آسیب‌پذیر Frappe ارسال می‌شود
  • سرور پیام خطا برمی‌گرداند و مهاجم از آن خطا برای کشف ساختار پایگاه‌داده استفاده می‌کند
  • سپس حمله‌های بعدی مانند Boolean-based یا Union-based قابل اجرا می‌شود

۵. توصیه‌های امنیتی برای توسعه‌دهندگان

۵.۱. ارتقا فوری نسخه‌های Django و Frappe

۵.۲. بررسی لاگ‌ها

  • خطاهای غیرمعمول پایگاه‌داده
  • پارامترهای مشکوک در endpointها
  • درخواست‌های تکراری برای یک نقطه ورودی

۵.۳. محدودسازی خطاهای دیتابیس

  • غیرفعال‌کردن نمایش خطاهای کامل SQL به کاربران
  • استفاده از logging امن

۵.۴. استفاده از ORM به‌صورت امن

  • عدم اعتماد به aliasهای پویا
  • اعتبارسنجی دقیق پارامترهای ورودی

۶. خطر SQL Injection

دو آسیب‌پذیری CVE-2025-13372 و CVE-2025-66205 بار دیگر نشان می‌دهند که حتی قدرتمندترین فریم‌ورک‌های وب نیز در برابر اشتباهات کوچک طراحی آسیب‌پذیر هستند. هر دو رخنه می‌توانند منجر به SQL Injection شوند و پیامدهای سنگینی برای کسب‌وکارها داشته باشند.

توسعه‌دهندگان و شرکت‌های هاست حرفه‌ای باید دستورالعمل‌های زیر را اجرا کنند:

  • نسخه‌ها را فوراً ارتقا دهند
  • endpointها را بررسی کنند
  • لاگ‌ها را پایش کنند
  • اصول امن‌سازی ورودی‌ها
18 آذر 1404

4بازدید

آسیب‌پذیری جدید Django و Frappe تهدیدی امنیت پایگاه داده | رادکام