کشف آسیب‌پذیری درPDO PostgreSQL

کشف آسیب‌پذیری درPDO PostgreSQL

تاریخ ایجاد

زبان برنامه‌نویسی PHP  در بسیاری از وب‌سایت‌ها، سامانه‌های اتوماسیون، پرتال‌های خدمات الکترونیکی و APIها مورد استفاده قرار می‌گیرد و برای ارتباط با پایگاه‌های داده، از لایه‌ استاندارد PDOبهره می‌برد که امکان تعامل امن و یکپارچه با انواع پایگاه‌های داده از جمله PostgreSQL را فراهم می‌کند. اخیرا آسیب‌پذیری با شناسه CVE-2025-14180  وشدت 8.2 در PDO شناسایی شده است که از نوع نقص در مدیریت حافظه است و می‌تواند منجر به توقف فرآیند PHP و از کار افتادن کلیه سرویس‌های وابسته گردد.

جزئیات آسیب‌پذیری

این آسیب‌پذیری ناشی از یک نقص در مدیریت حافظه در پیاده‌سازی درایور PostgreSQL برای PDO در PHP است. این مشکل زمانی بروز می‌کند که از prepared statementها با قابلیت شبیه‌سازی‌شده استفاده شود و پارامترهای ورودی شامل توالی‌های کاراکتری نامعتبر باشند. در چنین شرایطی، تابع مورد استفاده برای escaping داده‌ها مقدار نامعتبری بازمی‌گرداند که به‌درستی بررسی نمی‌شود و در ادامه باعث ارجاع به اشاره‌گر تهی در یکی از توابع پردازش پارامترها می‌گردد. نتیجه این وضعیت، بروز خطای segmentation fault و متوقف شدن فرآیند PHP است که می‌تواند کل سرویس وب یا برنامه های کاربردی وابسته را متوقف کند و دسترس‌پذیری سامانه را تحت تأثیر قرار دهد.

بردار حمله CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N نشان می دهد آسیب‌پذیری از طریق شبکه و از راه دور قابل بهره‌برداری است و برای بهره برداری از آن نیازی به احراز هویت یا تعامل کاربر وجود ندارد. بهره‌برداری از این نقص مستلزم شرایط خاصی است و پیچیدگی نسبتا بالایی دارد. تأثیر این آسیب‌پذیری حذف دسترس‌پذیری سرویس است و منجر به نقض محرمانگی یا یکپارچگی اطلاعات نمی‌شود. همچنین دامنه اثرگذاری آن به همان مؤلفه آسیب‌پذیر محدود بوده و بر سایر بخش‌های سامانه یا زیرساخت اثر امنیتی نخواهد داشت.

نسخه‌های تحت تاثیر

نسخه‌های زیر از PHP در صورت استفاده از PDO PostgreSQL با قابلیت emulate prepares فعال، آسیب‌پذیر هستند:

  • PHP 8.1 قبل از نسخه 8.1.34
  • PHP 8.2 قبل از نسخه 8.2.30
  • PHP 8.3 قبل از نسخه 8.3.29
  • PHP 8.4 قبل از نسخه 8.4.16
  • PHP 8.5 قبل از نسخه 8.5.1

توصیه‌های امنیتی

  • به‌روزرسانی PHP به نسخه‌های اصلاح‌شده منتشرشده توسط PHP Group
  • در صورت عدم امکان به‌روزرسانی فوری، غیرفعال‌سازی قابلیت emulated prepares در PDO بمنظور کاهش ریسک بهره‌برداری.
  • بررسی و اعتبارسنجی دقیق ورودی‌های کاربر در لایه کاربردی بمنظور جلوگیری از ارسال داده‌های نامعتبر.

منابع

https://nvd.nist.gov/vuln/detail/CVE-2025-14180

https://github.com/php/php-src/security/advisories/GHSA-8xr5-qppj-gvwj

https://www.cve.org/CVERecord?id=CVE-2025-14180

https://nvd.nist.gov/vuln/detail/CVE-2025-14180