چکیده

آسیب‌پذیری بحرانی اجرای کد از راه دور (RCE) در pgAdmin 4 هنگام اجرا در حالت سرور (Server Mode) و در فرآیند بازیابی دامپ‌های SQL با فرمت PLAIN رخ می‌دهد. در این سناریو، مهاجم احراز هویت‌شده با سطح دسترسی پایین می‌تواند با آپلود یک فایل دامپ مخرب، مکانیزم های حفاظتی را دور بزند و دستورات دلخواه سیستم‌عامل را روی سرور میزبان pgAdmin اجرا کند.

توضیحات

آسیب‌پذیری CVE-2025-13780 ناشی از کنترل ناکافی تولید کد (Code Injection) مطابق با CWE-94 در قابلیت بازیابی دامپ‌های SQL فرمت PLAIN در ابزار مدیریتی pgAdmin 4 است. این ضعف امنیتی تنها در حالت سرور (Server Mode) فعال است، جایی که pgAdmin به‌عنوان یک وب‌اپلیکیشن مرکزی برای مدیریت پایگاه‌های داده PostgreSQL عمل می‌کند و کاربران از راه دور به آن دسترسی دارند.

در فرآیند بازیابی پایگاه داده، pgAdmin فایل دامپ SQL آپلودشده توسط کاربر را مستقیماً به ابزار psql (کلاینت خط فرمان PostgreSQL برای اجرای دستورات SQL و دستورات کنترلی) ارسال می‌کند. به‌منظور جلوگیری از اجرای دستورات مخرب سیستم‌عامل، pgAdmin از یک مکانیزم فیلترینگ مبتنی بر عبارت منظم (Regex) استفاده می‌کند تا دستورات کنترلی psql (دستوراتی که با بک‌اسلش \ آغاز می‌شوند و خارج از استاندارد SQL هستند) را مسدود نماید. با این حال، این فیلتر امنیتی به‌طور کامل و قابل اتکا پیاده‌سازی نشده است و می‌توان آن را با تکنیک‌های مختلف دور زد. از جمله این تکنیک ها می‌توان به استفاده از پیشوند UTF-8 BOM (نشانگر ترتیب بایت با مقادیر \xef\xbb\xbf در ابتدای فایل)، تزریق CRLF (جایگزینی توالی \n\r به‌جای \n برای تغییر الگوی پردازش خطوط)، یا به‌کارگیری کاراکترهای فاصله‌ای غیراستاندارد اشاره کرد. این تکنیک‌ها باعث می‌شوند عبارت منظم مورد استفاده در pgAdmin نتواند دستورات مخرب را شناسایی کند.

در چنین شرایطی، ابزار psql دستورات کنترلی موجود در فایل دامپ را بدون محدودیت تفسیر و اجرا می‌کند، در حالی که لایه فیلترینگ pgAdmin قادر به تشخیص آن‌ها نیست. در نتیجه، مهاجم احراز هویت‌شده با سطح دسترسی پایین می‌تواند یک فایل دامپ مخرب حاوی دستوراتی مانند اجرای فرمان‌های سیستم‌عامل (برای مثال ! whoami یا دریافت و اجرای اسکریپت از راه دور) را آپلود کند. این فرآیند منجر به اجرای کد از راه دور (RCE) با سطح دسترسی کاربر سرویس pgAdmin روی سرور میزبان می‌شود.

این حمله از راه دور قابل بهره‌برداری است، نیازی به تعامل کاربر قربانی ندارد و تنها مستلزم احراز هویت پایه در pgAdmin است. همچنین بهره‌برداری از این آسیب‌پذیری به‌سادگی قابل خودکارسازی بوده و مهاجم می‌تواند با استفاده از اسکریپت‌ها یا ابزارهای آماده، فرآیند آپلود دامپ مخرب و اجرای دستورات را بدون مراحل پیچیده انجام دهد.

برای این آسیب‌پذیری، کدهای اثبات مفهوم عمومی (PoC) و همچنین اسکنرهای خودکار منتشر شده‌اند که نشان می‌دهند چگونه با استفاده از پیشوند BOM یا تزریق CRLF می‌توان فیلتر مبتنی بر Regex را دور زد و دستورات سیستم‌عامل را اجرا کرد.

پیامدهای این ضعف امنیتی شامل تأثیر بالا بر محرمانگی با افشای داده‌های پایگاه داده، یکپارچگی با تغییر یا حذف داده‌ها و دسترس‌پذیری با ایجاد اختلال یا توقف سرویس است. در سناریوهای عملی، این آسیب‌پذیری می‌تواند منجر به نفوذ کامل به سرور میزبان pgAdmin و در نتیجه دسترسی کامل به پایگاه‌های داده PostgreSQL متصل شود.

این ضعف امنیتی با انتشار pgAdmin نسخه 9.11 به‌طور کامل پچ شده است. در نسخه‌های پچ شده، فرآیند بازیابی دامپ‌های PLAIN به‌گونه‌ای تغییر یافته که اجرای psql با گزینه \restrict انجام می‌شود. این گزینه محدودیت‌ها را مستقیماً در پردازشگر دستورات psql اعمال می‌کند و مانع از اجرای دستورات کنترلی و مخرب می‌شود. در نتیجه، مکانیزم‌های مبتنی بر فیلترهای عبارت منظم دیگر نقش حیاتی ندارند و امنیت فرآیند بازیابی به‌صورت بنیادین تقویت شده است.

CVSS

Score Severity Version Vector String
9.1 CRITICAL 3.1 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:L/A:L

لیست محصولات آسیب پذیر

Versions Product
affected from 0 through 9.10 pgAdmin 4

لیست محصولات بروز شده

Versions Product
9.11 pgAdmin 4

استفاده محصول در ایران

در این جدول، تعداد صفحات ایندکس‌شده در گوگل با دامنه .ir که pgAdmin 4 را ذکر کرده اند، ثبت شده است. این داده صرفاً برای برآورد تقریبی حضور محصولات در وب ایران استفاده شده و نمایانگر میزان نصب دقیق و استفاده واقعی نیست.

Approx. Usage in .ir Domain via Google

(Total Pages)

Search Query (Dork) Product
112 site:.ir “pgAdmin 4” pgAdmin 4

نتیجه گیری

این آسیب‌پذیری بحرانی در pgAdmin 4، در صورت اجرا در حالت سرور ، امکان اجرای کد دلخواه از راه دور را فراهم می‌کند و می‌تواند منجر به نفوذ کامل سرور میزبان و پایگاه‌های داده PostgreSQL شود؛ به‌ویژه در محیط‌هایی که چندین کاربر به قابلیت بازیابی دامپ‌ها دسترسی دارند. با توجه به وجود PoC عمومی و انتشار پچ رسمی، اجرای اقدامات زیر برای جلوگیری از بهره‌برداری و کاهش سطح ریسک ضروری است:

  • به‌روزرسانی فوری: تمام استقرارهای pgAdmin 4 را به نسخه 9.11 یا بالاتر به روزرسانی کنید. این اقدام، مؤثرترین و قطعی‌ترین راهکار برای رفع آسیب‌پذیری است و باید در اولویت قرار گیرد. سایر اقدامات نقش مکمل را دارند و می‌توانند به کاهش ریسک این آسیب پذیری و مقابله با حملات مشابه کمک کنند.
  • محدودسازی قابلیت بازیابی: در حالت سرور، قابلیت بازیابی دامپ‌های SQL با فرمت PLAIN را غیرفعال کنید یا دسترسی به آن را صرفاً به کاربران کاملاً مورد اعتماد محدود نمایید. در صورت امکان، از فرمت‌های امن‌تر مانند CUSTOM استفاده شود.
  • اصل حداقل دسترسی: pgAdmin را با حساب کاربری دارای حداقل سطح دسترسی اجرا کنید و از ایزوله‌سازی سرویس با ابزارهایی مانند Docker یا Kubernetes بهره ببرید تا در صورت بهره‌برداری، دامنه تأثیر حمله محدود شود.
  • نظارت و ثبت لاگ: فعالیت‌های مرتبط با بازیابی دامپ‌ها را به‌طور مستمر نظارت کنید، لاگ‌های pgAdmin و سیستم‌عامل را برای شناسایی عملکردهای غیرعادی بررسی نمایید و از سامانه‌های مدیریت رویداد و اطلاعات امنیتی (SIEM) برای تشخیص آپلودهای مشکوک استفاده کنید..
  • تقویت امنیت شبکه: دسترسی به رابط وب pgAdmin را از طریق فایروال اپلیکیشن وب (WAF) محدود کرده و درخواست‌های غیرمجاز یا مشکوک را فیلتر نمایید.
  • تست امنیتی: به‌صورت دوره‌ای، pgAdmin و محیط مرتبط را با ابزارهایی مانند OWASP ZAP یا اسکنرهای تخصصی آسیب‌پذیری بررسی کنید تا نسخه‌ها یا پیکربندی‌های ناامن شناسایی شوند.
  • آموزش و سیاست‌ها: کاربران و مدیران سیستم را نسبت به ریسک‌های مرتبط با آپلود و بازیابی فایل‌های دامپ آگاه کنید و سیاست‌های مشخصی برای بررسی و تأیید فایل‌ها پیش از بازیابی اعمال نمایید.

اجرای این اقدامات، به‌ویژه به‌روزرسانی فوری و محدودسازی قابلیت‌های پرریسک، احتمال بهره‌برداری از این آسیب‌پذیری را به حداقل رسانده و سطح امنیت مدیریت پایگاه‌های داده PostgreSQL با pgAdmin را به‌طور قابل‌توجهی افزایش می‌دهد.

امکان استفاده در تاکتیک های Mitre Attack

Initial Access (TA0001)
مهاجم با احراز هویت پایه در pgAdmin 4 (Server Mode) و دسترسی سطح پایین، از قابلیت Restore دامپ SQL با فرمت PLAIN به‌عنوان نقطه ورود استفاده می‌کند. این دسترسی بخشی از عملکرد عادی اپلیکیشن است و نیازی به تعامل کاربر یا مهندسی اجتماعی ندارد.

Execution (TA0002)
در جریان بازیابی دامپ PLAIN، دستورات کنترلی psql از طریق دور زدن فیلتر مبتنی بر Regex اجرا می‌شوند و منجر به اجرای کد دلخواه سیستم‌عامل با سطح دسترسی سرویس pgAdmin می‌گردند.

Privilege Escalation (TA0004)
در صورت اجرای pgAdmin با حساب کاربری دارای دسترسی گسترده، مهاجم می‌تواند پس از RCE به سطح دسترسی بالاتری در سیستم‌عامل دست یابد.

Defense Evasion (TA0005)
استفاده از BOM، CRLF و کاراکترهای فاصله‌ای غیرمعمول باعث می‌شود مکانیزم‌های فیلترینگ سطح اپلیکیشن شناسایی دستورات مخرب را دور بزنند. این موضوع نشان‌دهنده ناکارآمدی کنترل‌های مبتنی بر Regex در برابر ورودی‌های ساخت‌یافته است.

Discovery (TA0007)
پس از اجرای کد، مهاجم می‌تواند محیط سرور، مسیرهای فایل، تنظیمات pgAdmin و اطلاعات اتصال به پایگاه‌های داده PostgreSQL را شناسایی کند.

Collection (TA0009)
داده‌های پایگاه داده، تنظیمات مدیریتی و اطلاعات احراز هویت ذخیره‌شده در محیط pgAdmin می‌توانند جمع‌آوری شوند.

Impact (TA0040)
این زنجیره حمله می‌تواند به نفوذ کامل سرور میزبان pgAdmin، دسترسی غیرمجاز به پایگاه‌های داده PostgreSQL، تغییر یا حذف داده‌ها و اختلال در سرویس‌های حیاتی منجر شود. تأثیر نهایی، نقض محرمانگی، یکپارچگی و دسترس‌پذیری در سطح بالا است.

منابع

  1. https://www.cve.org/CVERecord?id=CVE-2025-13780
  2. https://www.cvedetails.com/cve/CVE-2025-13780/
  3. https://github.com/pgadmin-org/pgadmin4/issues/9368
  4. https://vulmon.com/vulnerabilitydetails?qid=CVE-2025-13780
  5. https://vuldb.com/?id.335952
  6. https://github.com/ThemeHackers/CVE-2025-13780
  7. https://github.com/Ashwesker/Blackash-CVE-2025-13780
  8. https://nvd.nist.gov/vuln/detail/CVE-2025-13780
  9. https://cwe.mitre.org/data/definitions/94.html

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *