أعلنت مجموعة تطوير PostgreSQL عن إطلاق تحديثات أمنية حرجة لجميع الفروع المدعومة من نظام إدارة قواعد البيانات الشهير PostgreSQL. هذه التحديثات تأتي لمعالجة 11 ثغرة أمنية خطيرة، تشمل ثغرات تنفيذ التعليمات البرمجية العشوائية (arbitrary code execution) وعدة مشكلات تتعلق بحقن SQL (SQL injection). يُعد هذا الإصدار ذا أولوية قصوى لجميع قواعد البيانات المنتجة، نظرًا لخطورة الثغرات المكتشفة وتأثيرها المحتمل على أمان الأنظمة.
تشمل الإصدارات الجديدة كلاً من PostgreSQL 18.4 و 17.10 و 16.14 و 15.18 و 14.23. لا تقتصر هذه التحديثات على إصلاح الثغرات الأمنية فحسب، بل تعالج أيضًا أكثر من 60 خطأً تم الإبلاغ عنها خلال الأشهر القليلة الماضية، مما يجعلها ضرورية لضمان استقرار وأمان قواعد البيانات.
ثغرات PostgreSQL الأمنية الحرجة: تفاصيل فنية
لقد تأثرت جميع الفروع المدعومة من PostgreSQL، بدءًا من الإصدار 14 وحتى 18، ببعض هذه المشكلات على الأقل. وهذا يعني أن مجرد تشغيل إصدار رئيسي أحدث لا يلغي خطر التعرض لهذه الثغرات. يمكن للمسؤولين إجراء الترقية في مكانها عن طريق إيقاف PostgreSQL وتحديث الملفات الثنائية (binaries)؛ لا يتطلب الأمر استخدام أدوات مثل dump/restore أو pg_upgrade لهذه التحديثات الثانوية، مما يسهل عملية التحديث.
تنفيذ التعليمات البرمجية عبر وحدة refint (CVE-2026-6637)
تُعد الثغرة الأمنية CVE-2026-6637 واحدة من أخطر الأخطاء المكتشفة، وهي تقع في وحدة `refint` التي تُستخدم لفرض التكامل المرجعي (referential integrity) داخل قواعد البيانات. تسمح هذه الثغرة، وهي عبارة عن تجاوز سعة المخزن المؤقت في المكدس (stack buffer overflow)، لمستخدم قاعدة بيانات غير مصرح له بتنفيذ تعليمات برمجية عشوائية كحساب نظام التشغيل الذي يدير PostgreSQL. وهذا يعني اختراقًا كاملاً للخادم من نقطة دخول على مستوى قاعدة البيانات.
ينشأ سيناريو هجوم منفصل عندما يقوم تطبيق ما بكشف عمود يتحكم فيه المستخدم كمفتاح أساسي من نوع `refint-cascade` ويسمح للمستخدمين بتحديثه. في هذه الحالة، يمكن لتحديث مفتاح أساسي مُعد مسبقًا أن يؤدي إلى حقن SQL (SQL injection)، مما يسمح للمهاجم بتنفيذ أي تعليمات SQL باستخدام امتيازات قاعدة البيانات الخاصة بالدور الذي يقوم بالتحديث.
حقن SQL في ميزات النسخ المتماثل المنطقي (Logical Replication) (CVE-2026-6638)
تحتوي ميزات النسخ المتماثل المنطقي (logical replication) في PostgreSQL على مسارات متعددة لحقن SQL يمكن استغلالها لرفع مستوى الامتيازات. تكمن الثغرة CVE-2026-6638 تحديدًا في الأمر `ALTER SUBSCRIPTION … REFRESH PUBLICATION`. وفقًا لآخر إصدار من PostgreSQL، تؤثر هذه العيوب بشكل أساسي على بيئات PostgreSQL 16-18 التي تستخدم النسخ المتماثل المنطقي. يمكن للمهاجمين استغلال هذه الثغرات للحصول على امتيازات أعلى داخل قاعدة البيانات، مما يتيح لهم الوصول إلى بيانات حساسة أو تعديلها أو حتى السيطرة على النظام.
مشكلات الذاكرة والأدوات من جانب العميل
إلى جانب الثغرات المذكورة أعلاه، تتأثر العديد من الثغرات الأخرى بسلامة الذاكرة (memory safety)، وحالات رفض الخدمة (denial-of-service)، والأدوات المساعدة من جانب العميل (client tools):
- CVE-2026-6473: تصف هذه الثغرة مشكلات تجاوز سعة الأعداد الصحيحة (integer wraparound) التي تسبب تخصيصات ذاكرة غير كافية وكتابات خارج الحدود (out-of-bounds writes)، مما يؤدي إلى أخطاء تقسيم الذاكرة (segmentation faults) عند قيام المهاجمين بتوفير مدخلات مُعدّة خصيصًا. يمكن أن يؤدي هذا إلى تعطل الخادم أو حتى تنفيذ تعليمات برمجية خبيثة.
- CVE-2026-6477: تؤثر هذه الثغرة على مكتبة العميل `libpq` عن طريق السماح باستخدام غير آمن لوظيفة `PQfn` في دوال المساعدة الخاصة بالكائنات الكبيرة (large-object helper functions) مثل `lo_export()` و `lo_read()`. يمكن للمستخدم الفائق (superuser) على الخادم إرسال استجابات بحجم كبير جدًا (oversized responses) تتجاوز سعة ذاكرة المكدس (stack memory) في أدوات العميل مثل `psql` و `pg_dump`، مما قد يؤدي إلى تنفيذ تعليمات برمجية من جانب العميل.
- CVE-2026-6475: تتأثر أيضًا أدوات النسخ الاحتياطي بهذه الثغرات: تسمح `pg_basebackup` (بصيغة `plain format`) و `pg_rewind` باتباع الروابط الرمزية (symbolic links) وكتابة فوق ملفات محلية عشوائية يختارها المستخدم الفائق الأصلي، مثل ملفات تعريف shell. يمكن أن يؤدي هذا إلى اختراق ملفات النظام الهامة.
- مشاكل أخرى: تشمل الثغرات الأخرى المبلغ عنها تجاوز الامتيازات وتنفيذ SQL عشوائي، وفساد الذاكرة المحتمل (RCE و memory corruption)، وتسريب معلومات ذاكرة الخادم، وثغرة الكتابة فوق الملفات العشوائية، وحقن SQL مع تنفيذ امتيازات المستخدم الفائق، ومخاطر تنفيذ التعليمات البرمجية من جانب العميل، وعيوب رفض الخدمة في SSL/GSS، ومشكلة الكشف المحدود عن الذاكرة، وتجاوز سعة المكدس وحقن SQL.
ماذا يعني هذا لك؟
بالنظر إلى التوليفة الخطيرة من تنفيذ التعليمات البرمجية، وحقن SQL، وفساد الذاكرة، ومخاطر جانب العميل، يجب التعامل مع هذه التحديثات على أنها عاجلة للغاية، لا سيما بالنسبة لعمليات نشر PostgreSQL المعرضة للإنترنت (internet-exposed) أو متعددة المستأجرين (multi-tenant). إن الفشل في تطبيق هذه التحديثات يمكن أن يعرض بياناتك الحساسة وسلامة أنظمتك للخطر الشديد.
نهاية دعم PostgreSQL 14: تجدر الإشارة إلى أن PostgreSQL 14 من المقرر أن يصل إلى نهاية دورة حياته (end-of-life) في 12 نوفمبر 2026، وبعد هذا التاريخ لن يتلقى المزيد من الإصلاحات الأمنية. يجب على المؤسسات التي لا تزال تعمل بالإصدار 14 أن تقوم بتطبيق الإصدار 14.23 الآن وتبدأ في التخطيط للانتقال إلى فرع أحدث مدعوم في أقرب وقت ممكن لضمان استمرارية الأمان والدعم.
خاتمة
تُعد التحديثات الأمنية الأخيرة التي أصدرتها مجموعة PostgreSQL Development Group ضرورية لحماية قواعد البيانات من مجموعة واسعة من الثغرات الخطيرة. يضمن تطبيق هذه التحديثات في الوقت المناسب الحفاظ على أمان البيانات وحماية الأنظمة من الهجمات المحتملة. لا تتردد في اتخاذ الإجراءات اللازمة لترقية أنظمتك فورًا وتأمين بنية قواعد بياناتك.