PostgreSQL يصدر تحديثات لإصلاح خطأ libpq

postgreSQL

قبل بضعة أيام، أعلنت PostgreSQL عن إصدار تحديثات تصحيحية لجميع فروع PostgreSQL المدعومة (الإصدارات 17.3 و16.7 و15.11 و14.16 و13.19). هذه التحديثات، الذي يعمل على إصلاح أكثر من 70 خطأ والأهم من ذلك القضاء على الثغرة الأمنية التي تم تحديدها باسم CVE-2025-1094، مرتبط بالهجوم الذي أثر على BeyondTrust ووزارة الخزانة الأمريكية في أواخر ديسمبر.

عالي التأثر تم اكتشافه أثناء تحليل خطأ بعيد آخر (CVE-2024-12356) في خدمات BeyondTrust PRA (الوصول البعيد المتميز) وBeyondTrust RS (الدعم عن بعد)، وقد تفاقمت بسبب وجود ثغرة أمنية غير معروفة سابقًا (0-day) في مكتبة libpq.

حول الثغرة التي أثرت على BeyondTrust

يذكر أن الفشل في PostgreSQL نشأت في libpq، المكتبة التي يوفر واجهة برمجة التطبيقات للتفاعل مع PostgreSQL من البرامج المكتوبة بلغة C، وهو أيضًا الأساس للارتباطات في C++، وPerl، وPHP، وPython.

La تكمن الثغرة في التعامل غير السليم مع التحقق من صحة أحرف Unicode. في وظائف الهروب الحاسمة. تعتبر هذه الوظائف ضرورية لتحييد الأحرف الخاصة في استعلامات SQL ومنع حقن التعليمات البرمجية. ومع ذلك، فإن عدم وجود التحقق المناسب يسمح لبعض تسلسلات UTF-8 متعددة البايتات غير الصالحة بتجاوز تطبيع الاقتباس.

طريقة الهجوم

هذا الفشل يسمح باستبدال SQL في التطبيقات التي تستخدم هذه الوظائف لمعالجة الاستعلامات، وخاصةً عندما يتم إرسال الاستعلامات من خلال أداة سطر الأوامر psql. على سبيل المثال، يمكن استغلال هذه الثغرة الأمنية لتنفيذ أوامر عشوائية على الخادم عبر استبدال سطر الأوامر بـ "!"، كما هو موضح في مثال تم فيه استدعاء الأداة المساعدة "id".

تعتمد هذه الثغرة الأمنية على استخدام حرف UTF-8 غير صالح يتكون من البايتات 0xC0 و0x27. يتوافق البايت 0x27 مع علامة اقتباس مفردة في ASCII، والتي يتم عادةً تجنبها لتجنب مشاكل حقن SQL. ولكن عند دمجه مع 0xC0، يتم تفسير التسلسل كحرف Unicode واحد، مع ترك علامة الاقتباس المفردة دون أي استثناء.

تأثير الهجوم

ونتيجة لهذه الثغرة الأمنية، تمكن المهاجمون من الحصول على مفتاح الوصول إلى واجهة برمجة التطبيقات يتم استخدامه لتوفير الدعم عن بعد من خلال خدمات BeyondTrust SaaS. مع هذا المفتاحتمكن القراصنة من إعادة تعيين كلمات المرور واختراق البنية التحتية لوزارة الخزانة الأمريكية.، الوصول إلى المستندات السرية ومحطات عمل الموظفين. كشف الهجوم عن عيوب خطيرة في سلسلة الأمان، مما يسلط الضوء على أهمية وجود آليات قوية للتحقق من صحة الإدخال في المكتبات الهامة مثل libpq.

التحديثات والتدابير التصحيحية

قبل هذه البانوراما قام فريق PostgreSQL بتنفيذ التحديثاتسنقدم لك هنا تحديثًا جديدًا يعمل على إصلاح هذه الثغرة الأمنية وعدد من الأخطاء الإضافية. الحل يكمن في تحسين التحقق من صحة الأحرف في وظائف الهروب، ضمان معالجة أي تسلسل UTF-8 بشكل صحيح ومنع تفسير اقتباس واحد بشكل خاطئ.

بالإضافة إلى ذلك، وكما ذكرنا سابقًا، يعمل هذا التحديث على إصلاح أكثر من 70 خطأ تم الإبلاغ عنها خلال الأشهر القليلة الماضية:

  • تم إصلاح إمكانية إعادة استخدام النتائج القديمة في تجميعات النافذة، مما قد يؤدي إلى نتائج غير صحيحة.
  • تم إصلاح حالات السباق المختلفة للفراغ والتي قد تتسبب، في أسوأ الأحوال، في إتلاف كتالوج النظام.
  • إصلاحات مختلفة لتقليص الجداول والمؤشرات لمنع الفساد المحتمل.
  • الحل البديل لفصل القسم حيث يشير قيد المفتاح الخارجي الخاص به إلى جدول مقسم.
  • تم إصلاح أكواد تنسيق FFn (على سبيل المثال FF1) إلى_timestamp، حيث يستهلك كود تنسيق عدد صحيح قبل FFn جميع الأرقام المتاحة.
  • إصلاحات لـ SQL/JSON وXMLTABLE() لوضع علامات اقتباس مزدوجة حول إدخالات محددة عند الحاجة إليها.
  • قم بتضمين خيار ldapscheme في pg_hba_file_rules().
  • إصلاحات مختلفة لـ UNION، بما في ذلك عدم دمج الأعمدة ذات التنسيقات غير المدعومة.
  • تم إصلاح العديد من المشاكل التي قد تؤثر على توفر أو سرعة بدء الاتصال بـ PostgreSQL.
  • إصلاح تسريبات الذاكرة المتعددة في إخراج فك التشفير المنطقي.
  • إصلاح العديد من تسريبات الذاكرة في PL/Python.
  • تم إصلاح تسرب ذاكرة pg_restore مع البيانات المضغوطة zstd.
  • تم إصلاح pg_basebackup للتعامل بشكل صحيح مع ملفات pg_wal.tar الأكبر من 2 جيجابايت على نظام التشغيل Windows.
  • تم إصلاح التعطل في pageinspect في الحالات التي لا يتم فيها تحديث تعريف وظيفة brin_page_items() إلى الإصدار الأحدث.
  • إصلاح حالة السباق عند محاولة إلغاء استعلام postgres_fdw عن بعد.

أخيرًا ، إذا كنت مهتمًا بأن تكون قادرًا على معرفة المزيد عنها ، فيمكنك الرجوع إلى التفاصيل في الرابط التالي.


اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: ميغيل أنخيل جاتون
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.