نشرت AWS في 6 نوفمبر 2026 النشرة الأمنية 2026-166-AWS عن خللين في سلامة الذاكرة داخل طبقة Tabular Data Stream (TDS) التي يستخدمها Babelfish for PostgreSQL وBabelfish for Amazon Aurora PostgreSQL. الخلل الأخطر، CVE-2026-119923، يمكن الوصول إليه أثناء مصافحة اتصال TDS قبل المصادقة، وقد يسمح بتنفيذ أوامر في نظام التشغيل بصلاحيات عملية قاعدة البيانات. أما CVE-2026-119924 فيتطلب جلسة TDS مصادقًا عليها، وقد يكشف جزءًا مجاورًا من ذاكرة العملية أو يؤدي إلى توقفها.
الاستجابة العملية ليست «أغلق المنفذ 1433 وانتهى الأمر». احصر كل نشر لـBabelfish وإصدار المحرك الفعلي، وقيّد الوصول إلى TDS فورًا، ثم حدّث إلى إصدار Babelfish أو Aurora PostgreSQL مصحح، واستبدل كل العمليات الحية، وأثبت الإصدار الجديد وراجع الأدلة خلال نافذة التعرض. تصف نشرة AWS أثرًا محتملًا؛ لكنها لا تقول إن استغلالًا فعليًا رُصد. لا تحول إشعار ثغرة إلى ادعاء اختراق بلا دليل.
حقائق الثغرتين والإصدارات أدناه مأخوذة من نشرة AWS الرسمية وسجلي CVE الرسميين ووثائق Aurora، وتحققت منها في 7 نوفمبر 2026. أما خطة النشر والتحقق والأدلة فهي إرشاد هندسي.
الإجابة أولًا
تعامل مع CVE-2026-119923 كتحديث عاجل متى كان منفذ Babelfish TDS المتأثر متاحًا لعملاء غير موثوقين. الخلل يقع في محلل Prelogin؛ لذلك لا تمنع مصادقة SQL ولا أدوار قاعدة البيانات قليلة الصلاحيات وصول الحزمة إلى المسار الضعيف. قيّد TCP 1433 إلى مصادر التطبيقات المعروفة كاحتواء مؤقت، لكن نفذ الإصدار المصحح الآن.
| القرار | الاستنتاج الآمن | الإجراء |
|---|---|---|
| Babelfish غير مثبت ولا يوجد مستمع TDS | لا تنطبق الثغرتان على هذا النظام | احتفظ بدليل الجرد وأغلق التذكرة |
| خط Babelfish مفتوح المصدر متأثر | الأولى قبل المصادقة والثانية بعدها | احتوِ ثم حدّث إلى 4.10 أو 5.6 أو 6.1+ وتحقق |
| Aurora PostgreSQL يستخدم Babelfish بإصدار متأثر | لا يمكن تحديث الإضافة مستقلة عن المحرك | حدّث محرك Aurora إلى البناء المصحح المطابق وطبق الصيانة المعلقة |
| الإصدار مجهول وTCP 1433 متاح | لا يمكن نفي التعرض | قيّد الوصول أولًا، ثم عرّف الإصدار وحدّث |
| الملفات محدثة لكن عمليات قديمة ما زالت تعمل | حالة الملفات ليست دليل Runtime | أعد التشغيل أو نفذ Failover ثم تحقق من كل عقدة |
موضع الخلل
يتيح Babelfish لعملاء SQL Server التحدث مع PostgreSQL عبر نقطة TDS. وتفسر هذه الحدود التوافقية بايتات العميل قبل ترجمة الطلبات إلى سلوك PostgreSQL. تقع الثغرتان في مرحلتين مختلفتين:
- CVE-2026-119923 — حرجة وقبل المصادقة: تصف AWS خلل سلامة ذاكرة في معالجة مصافحة اتصال TDS. يحدد سجل AWS الرسمي Heap-based Buffer Overflow في محلل Prelogin ويمنحه CVSS v3.1 بقيمة 9.8. قد تسمح حزمة Prelogin مشوهة بتنفيذ أوامر نظام التشغيل بصلاحيات عملية قاعدة البيانات.
- CVE-2026-119924 — مهمة وتتطلب مصادقة: يصف السجل الثاني قراءة خارج الحدود في محلل اسم الإجراء ضمن TDS RPC. قد يقرأ مستخدم بعيد مصادق عليه ذاكرة مجاورة أو يسبب حجب خدمة.
تعبر الأولى حد المصادقة: يجب على المحلل معالجة المصافحة قبل أن يثبت العميل هوية قاعدة البيانات. وتظل الثانية مهمة لأن «مصادق عليه» قد يعني بيانات اعتماد تطبيق مخترقة أو مستخدم تكامل واسع الصلاحية أو أي مستأجر مسموح له بالوصول إلى مستمع TDS.
تعد AWS إصدارات Babelfish المفتوحة 1.0–1.5 و2.1–2.15 و3.1–3.12 و4.0–4.8 و5.1–5.4 متأثرة. الإصدارات المصححة هي 4.10 و5.6 و6.1. لا تذكر النشرة إصلاحًا داخل الخطوط القديمة 1.x إلى 3.x؛ خطط لمسار ترقية مدعوم بدل افتراض وجود Patch غير مدرج.
في Aurora PostgreSQL تكون المصفوفة أدق لأن إصدار Babelfish مرتبط ببناء محرك Aurora. استخدم الجدول الكامل في 2026-166-AWS للفرع الذي تديره. من الأمثلة المصححة: Aurora PostgreSQL 13.23.3 مع Babelfish 1.17.2، و14.23.1 مع 2.17.0، و15.18.1 مع 3.14.0، و16.14.1 مع 4.10.0، و17.10.1 مع 5.6.0، و18.4.1 مع 6.1.0. هذه أمثلة وليست تصريحًا بتجاوز قيود الترقية المرحلية.
اجرد قبل اختيار الهدف
أنشئ صفًا لكل Cluster، لا صفًا لكل حساب. سجل المالك والبيئة والمنطقة ونقطة النهاية ومصادر الوصول إلى TDS وإصدار Aurora وإصدار Babelfish وسياسة الصيانة وهدف التحديث.
توثق AWS طريقة حصر إصدارات المحرك الإقليمية التي تدعم Babelfish:
aws rds describe-db-engine-versions \
--region eu-west-1 \
--engine aurora-postgresql \
--query '*[]|[?SupportsBabelfish==\`true\`].[EngineVersion]' \
--output textاستعلم عن الـCluster الفعلي منفصلًا؛ توافر إصدار لا يثبت أن الـCluster يشغله:
aws rds describe-db-clusters \
--db-cluster-identifier payments-sql \
--query 'DBClusters[0].{EngineVersion:EngineVersion,Pending:PendingModifiedValues,Status:Status}'عبر TDS يعيد \SELECT SERVERPROPERTY('BabelfishVersion');\ إصدار المنتج. وعبر منفذ PostgreSQL اعرض الإضافات المثبتة بواسطة \\\dx\. احفظ المخرجات الخام والطابع الزمني وCluster ARN في سجل التغيير. لقطة الشاشة وحدها دليل ضعيف لأنها تحذف نطاق الاستعلام ويصعب مقارنتها آليًا.
احتوِ حدود TDS دون اعتبار الاحتواء إصلاحًا
توصي AWS بتقييد الوصول الشبكي إلى منفذ TDS الافتراضي TCP 1433 للمصادر الموثوقة إلى أن يطبق التحديث. نفذ ذلك كقائمة سماح لمجموعات أمان تطبيقات معروفة أو CIDR ضيقة. أزل مسارات الإنترنت العامة ونطاقات الشركة الواسعة وشبكات الإدارة «المؤقتة» التي لا تحتاج TDS.
راجع المسار كاملًا: إعداد Public Endpoint، والتوجيه داخل VPC، ومجموعات الأمان، وNetwork ACL، وTransit Gateway، وخروج Kubernetes، وأي TCP Proxy أو Load Balancer أمام قاعدة البيانات. قد تقوض مجموعة أمان صارمة Proxy موثوقًا يقبل الاتصالات من أي مكان.
يقلل الاحتواء عدد الجهات القادرة على إرسال حزمة خبيثة، لكنه لا يصلح المحلل. ولا يحمي بالكامل من CVE-2026-119924 إذا كانت هوية تطبيق موثوقة قد اخترقت. أبق القيود بعد التحديث كدفاع متعدد الطبقات.
اختر مسار التحديث
### Babelfish مفتوح المصدر
انتقل إلى Babelfish 4.10 أو 5.6 أو 6.1 أو أحدث على إصدار PostgreSQL الرئيسي الموافق والمدعوم. انسخ البيانات والإعدادات احتياطيًا، وجرّب التحديث بمخطط وبيانات وعملاء TDS يشبهون الإنتاج، وثبت الحزم الموقعة من المشروع الرسمي، وحدّث إضافات Babelfish بالترتيب الموثق، ثم استبدل كل عمليات قاعدة البيانات.
لا تنسخ مكتبة مشتركة واحدة إلى صورة قديمة. يصعب إثبات سلامة خليط الحزم وقد يفشل عند Rollback. ابن صورة أو مجموعة حزم ثابتة، وسجل Digests، وانشرها عبر المسار المعتاد لإصدارات قاعدة البيانات.
### Babelfish for Aurora PostgreSQL
تؤكد AWS أن Babelfish لا يحدّث مستقلًا عن Aurora PostgreSQL الحاضن له. اختر بناءً مصححًا من النشرة ويكون هدفًا صالحًا لإصدارك الحالي. يفرق دليل ترقية Aurora بين تحديث Patch/Minor والترقية الرئيسية؛ وقد تتطلب الأخيرة Parameter Group جديدة وإصدارات وسيطة سابقة.
استخدم Clone أو Snapshot مستعادة للتجربة. شغل Prechecks، وتحقق من تطابق المعاملات، واختبر T-SQL والإجراءات المخزنة والمعاملات وبرامج التشغيل، وقس مدة الانقطاع. ثم جدْول تغيير الإنتاج بحد إيقاف ومالك Rollback واضحين. وطبق أي Pending Maintenance تسميها AWS؛ اختيار الإصدار في لوحة التحكم دون اكتمال الصيانة ليس دليل إنجاز.
تسلسل نشر آمن
- ألغِ الغموض: عيّن مالكًا للاستجابة وصدّر جرد Clusters الموثوق.
- احتوِ: قيّد TDS إلى أقل مجموعة مصادر متحققة، واختبر نجاح المسموح وفشل غير المسموح.
- التقط Snapshot وجرّب: استعد أو انسخ إلى بيئة معزولة. لا ترسل حزم Proof of Concept مشوهة إلى الإنتاج.
- حدّث Canary: ابدأ ببيئة غير إنتاجية أو ممثل منخفض المخاطر، شاملًا الإضافات والمعاملات والوسطاء.
- اختبر العقود: تسجيل الدخول، وPrepared Statements، وRPC والإجراءات، والمعاملات، وFailover، وتعافي Connection Pool.
- انشر للإنتاج: على موجات محدودة مع مراقبة أخطاء الاتصال وإعادة تشغيل العملية والزمن وصحة النسخ وأخطاء التطبيق.
- أثبت Runtime: استعلم عن الإصدار عبر TDS وPostgreSQL بعد كل Restart أو Failover.
- راجع نافذة التعرض: احتفظ بالسجلات ذات الصلة وحقق في الشذوذ دون تحويل الضجيج إلى ادعاء اختراق.
عقد التحقق
عرّف النجاح قبل التغيير:
| الطبقة | الدليل المطلوب | علامة الفشل |
|---|---|---|
| Control plane | هدف Aurora أو Digest صورة Babelfish يطابق التغيير المعتمد | الهدف مختار لكن الصيانة معلقة أو الصورة القديمة ما زالت معينة |
| Runtime | كل عقدة خدمة تعيد إصدارًا مصححًا بعد استبدال العملية | أي عقدة متأثرة أو مجهولة |
| الشبكة | TCP 1433 يقبل مصادر التطبيقات المعتمدة فقط | بقاء الإنترنت أو نطاق مشترك واسع أو Proxy بلا مالك |
| التطبيق | نجاح تسجيل TDS وRPC والمعاملات وFailover | Retry Storm أو Protocol Error أو انحراف حالة المعاملة |
| التشغيل | بقاء إعادة التشغيل وأخطاء الذاكرة والاتصال ضمن الحدود | Crash/Restart متكرر أو قراءة غير مفسرة |
| التعافي | Snapshot/Restore وRollback حديثان وقابلان للتنفيذ | الرجوع يعتمد Artifact غير مجرب أو إصدار رئيسي غير متوافق |
احتفظ بالمخرجات الخام والطوابع الزمنية. عودة Dashboard إلى اللون الأخضر ضرورية لكنها غير كافية؛ فقد تخفي عقدة Reader قديمة أو Endpoint ثانويًا.
راجع الحادث دون مبالغة
توضح نشرة AWS أثرًا محتملًا على السرية والسلامة والتوافر، لكنها لا تبلغ عن استغلال نشط. لذلك:
- حقيقة موثقة: الإصدارات المتأثرة تعرض مسارات محلل TDS للآثار المذكورة.
- غير موثق من AWS: استخدام Exploit عام ضد بيئتك أو اختراق Cluster بعينه.
- استنتاج هندسي: نقطة قبل المصادقة ومتاحة على نطاق واسع تستحق مراجعة أسرع لأن بيانات الاعتماد ليست شرطًا للوصول إلى المحلل.
راجع تاريخ تعرض مستمع TDS، وتغييرات Security Group، وسجلات Proxy، وتعطل أو إعادة تشغيل عملية قاعدة البيانات، واندفاعات الاتصالات، ونشاط نظام التشغيل المتاح من المنصة. قد تكون إعادة التشغيل طبيعية، وقد يكون الاتصال المشوه Scanner؛ لا يثبت أي منهما وحده تنفيذ أوامر. صعّد فقط حين تتكون Timeline متماسكة من عدة أدلة، واحفظ الأدلة قبل تدوير السجلات.
أفضل الممارسات والأخطاء الشائعة
افعل: اجعل نقاط قاعدة البيانات خاصة، واستخدم مراجع Security Group بدل CIDR واسعة، وتتبع إصداري Babelfish وAurora منفصلين، وجرّب التحديث من Snapshot، وتحقق من كل عقدة بعد Failover، واحتفظ بأدلة نافذة التعرض.
تجنب: الاعتماد على مصادقة SQL أمام خلل Parser قبل المصادقة، أو اعتبار حجب الطريق العام إصلاحًا دائمًا، أو تحديث تعريف Cluster دون استبدال العمليات، أو اختيار هدف Aurora دون فحص مسار الترقية، أو تشغيل حمولة Exploit في الإنتاج «لإثبات» الضعف.
قد تقلل القيود الشبكية الخطر الفوري، لكن نافذة الصيانة وتوافق التطبيق وقيود Major Version تظل تحدد النشر الأكثر أمانًا. وعلى الفرق التي تستخدم خطوط Babelfish قديمة التعامل مع الحدث كتغيير أمني وتصحيح لدورة الحياة معًا.
قائمة تنفيذية
- [ ] لكل Babelfish/Aurora Cluster مالك وإصدار Runtime دقيق.
- [ ] TCP 1433 محدود إلى مصادر التطبيقات المتحققة.
- [ ] النشر المفتوح يستهدف 4.10 أو 5.6 أو 6.1 أو أحدث.
- [ ] نشر Aurora يستخدم البناء والمسار الدقيقين من مصفوفة AWS.
- [ ] تجربة Snapshot/Clone تغطي TDS وRPC والمعاملات وFailover.
- [ ] كل العمليات والقراء يعيدون إصدارًا مصححًا.
- [ ] أدلة نافذة التعرض محفوظة ومقيمة دون ادعاء اختراق غير مسند.
- [ ] يبقى الاحتواء بعد التحديث.
للسياق التشغيلي، راجع تدريبات استعادة PostgreSQL PITR، وتشغيل Autovacuum، وخطة معالجة RCE في Next.js، ودليل استجابة PHP2Shell. وتربط صفحة الخدمات هذه الضوابط بأعمال معمارية الإنتاج وهندسة المنصات.
المراجع
- نشرة AWS الأمنية 2026-166-AWS: CVE-2026-119923 وCVE-2026-119924
- سجل AWS: CVE-2026-119923
- سجل AWS: CVE-2026-119924
- AWS Aurora: إدارة تحديثات Babelfish
- AWS Aurora: ترقية Cluster يستخدم Babelfish
- وثائق Babelfish for PostgreSQL
- Rajagupta546، “Networking Rack”، ترخيص CC BY-SA 4.0، Wikimedia Commons
إعداد: Noor Yasser
المراجع الرسمية
تدعم هذه المراجع سلوك الأدوات المذكورة. الأمثلة وقرارات التصميم توضيحية، ويجب تكييفها مع متطلبات المشروع وإصداراته.
- AWS Security Bulletin 2026-166-AWS — CVE-2026-119923 and CVE-2026-119924
- AWS CVE record — CVE-2026-119923
- AWS CVE record — CVE-2026-119924
- AWS Aurora — Managing Babelfish version updates
- AWS Aurora — Upgrading a Babelfish cluster
- Babelfish for PostgreSQL documentation
- Rajagupta546 — Networking Rack, CC BY-SA 4.0, Wikimedia Commons
إعداد: Noor Yasser
تعمل على تحدٍ تقني مشابه؟
أساعد الفرق على تحويل القرار المعماري إلى نطاق واضح وتنفيذ يمكن تشغيله ومراجعته بثقة.




