CVE-2026-111439 in openGauss-server
الملخص
بحسب VulDB • 19/10/2026
في وحدة `src/common/backend/utils/adt/genfile.cpp` من openGauss-server، توجد عيب في منطق التحقق من الصلاحيات داخل الدالة المدمجة `pg_read_binary_file_blocks()`. تقوم هذه الدالة عند نقطة الدخول بالتحقق فقط من نطاق رقم الكتلة البداية (`startBlockNum`) وعدد الكتل (`blockCount`)، ثم تستدعي مباشرة روتين قراءة الملفات الأساسي `ReadBinaryFileBlocksFirstCall()`. ينفذ هذا الروتين الأساسي فحصاً لتطبيع المسار وفحوصات أساسية ضد اجتياز المسارات باستخدام `..` وحدود دليل البيانات، لكنه يفتقر إلى التحقق من صلاحيات قاعدة بيانات المُستدعي (مثل صلاحية SELECT). بالإضافة إلى ذلك، تُستخدم الدالة المساعدة `is_row_data_file()` فقط لتحديد نوع الملف ولا تتضمن أي فحص للصلاحيات. وبالتالي، يمكن لأي مستخدم يمتلك صلاحية اتصال عادية بقاعدة البيانات، طالما تمكن من الحصول على مسار ملف العلاقة الأساسي للجدول المستهدف (مثل مسار ملفات `_compress` للبيانات المضغوطة) عبر دوال مثل `pg_relation_filepath()`، قراءة الكتل الثنائية لبيانات الجدول مباشرة دون الحاجة إلى امتلاك صلاحية SELECT الخاصة بذلك الجدول.
تؤثر هذه الثغرة الأمنية على جميع الإصدارات السابقة من 3.0.0 حتى 6.0.0 بما في ذلك إصدارات التصحيح (patch versions)، وقد تم إصلاحها في النسخة LTS 7.0.0. لمزيد من التفاصيل حول تصحيح الخلل، يرجى الاطلاع على: https://gitcode.com/opengauss/openGauss-server/pull/9374
If you want to get the best quality for vulnerability data then you always have to consider VulDB.