تحديث نواة Ubuntu 26.04 يعطل الحاويات بسبب تغيير في AppArmor
تغيّر تصحيح أمني في نواة Ubuntu 26.04 طريقة تكديس ملفات AppArmor، فترفض الحاويات الإشارات وتتجمد أدوات مثل gosu وPostgreSQL وحاويات Percona.

قد يؤدي تصحيح أمني في نواة Ubuntu 26.04 إلى تعطيل بيئات الإنتاج التي تعتمد على الحاويات بشكل مفاجئ. فبسبب تغيير في AppArmor، تتلقى العمليات داخل الحاوية الخطأ Permission denied عند إرسال إشارات، حتى إلى عملياتها الخاصة التي تحمل المعرّف uid نفسه. وتشمل المشكلة Kubernetes وk3s وRKE2 ومضيفات Docker.
كيف يظهر العطل
تظهر المشكلة على Ubuntu 26.04 أو على أي نواة تتضمن الإصلاح المنقول من الإصدار 7.0.0-41 وما بعده، بما في ذلك إصدارات السحابة مثل linux-aws وlinux-azure. ويشترط ذلك أيضاً تفعيل الخيار kernel.apparmor_restrict_unprivileged_unconfined=1 (وهو الافتراضي في 26.04)، واستخدام containerd أو Docker مع ملف AppArmor القياسي.
تسجّل النواة رسائل من نوع apparmor="DENIED" operation="signal" مع peer="cri-containerd.apparmor.d//&unconfined". ويعرض PostgreSQL الخطأ could not signal for checkpoint: Permission denied، بينما تستهلك gosu وأي برنامج Go يستدعي setuid كامل المعالج بنسبة 100% دون أن تبدأ الخدمة ودون سجلات. ويروي الكاتب حالة تعذّر فيها إقلاع حاويات PXC (Percona Operator for MySQL) بعد تغيير موارد العقد في عنقود Kubernetes، ثم لم يصل التطبيق إلى حالة Ready.
السبب
فعّلت Ubuntu منذ فبراير 2025 معاملاً يمنع أي عملية unconfined لا تملك CAP_MAC_OVERRIDE من تبديل ملفها مباشرة، فيُكدَّس الملف الجديد فوق unconfined. وقد سدّ الإيداع 08c2f7c8d4b1 (CVE-2026-90231) ثغرة التحايل على هذا القيد، وصار يفرض التكديس عند exec أيضاً.
يُسقط runc الصلاحيات (capabilities) أولاً ثم ينفّذ exec لعملية الحاوية. والنتيجة أن كل حاوية بالملف القياسي تعمل بالوسم cri-containerd.apparmor.d//&unconfined (وفي Docker: docker-default//&unconfined). أما قالب ملف containerd فيسمح بالإشارات فقط من الاسم الدقيق cri-containerd.apparmor.d، فلا ينطبق عليه الوسم المركّب، وترفض النواة أي إشارة بين العمليات والخيوط داخل الحاوية نفسها.
الحلول المؤقتة والجدول الزمني
يمكن مؤقتاً تعطيل AppArmor في CR الخاص بـ PerconaXtraDBCluster، أو إرسال الإشارة من العقدة بصلاحية root بعد إيجاد host-PID عبر crictl inspect. ووفق الكاتب، فإن آخر نواة غير متأثرة هي linux 7.0.0-38.38. وقد وصلت 7.0.0-42.42 إلى resolute-security فصار unattended-upgrades يثبّتها، وتستمر الأعراض في 7.0.0-43.43، بينما 7.0.0-44.44 في proposed. فُتحت التذكرتان LP #2172422 وcontainerd#14485، واقتُرح إصلاح الملف في PR #14487. وثمة تباين بسيط في البيانات: بعض التقارير تعدّ 7.0.0-41 أول إصدار معيب، وبعضها اختبر -42 فقط.
تطبيقات تستحق النظر
اختر المربعات الصحيحة واجمعها وحقّق الهدف. سهل التعلم، صعب الإتقان. مجاني، لجميع الأعمار.
تحدّث مع شريك محادثة بالذكاء الاصطناعي؛ تعود كل جملة مصحّحة ومشروحة بلغتك. 9 لغات، من A1 إلى C2.
افتح رسائل EDIFACT وX12 مع شرح كل مقطع، وحوّلها إلى JSON/XML، وصدّرها إلى PDF وExcel. يعمل محليًا دون رفع.
اختر لمن الهدية والمناسبة والشخصية. يقرأ محرك البحث أوصاف المنتجات من المتاجر المحلية ويرتّب ما يناسب. مجاني، بلا تسجيل.
المزيد من هذا اليوم
عرض الكل →
LINE تتيح جدولة الرسائل حتى سنة مقدماً وبالمجان حالياً

Flipper One جاهز للإطلاق على Kickstarter بسعر يبدأ من 379 دولارًا

Dezhurka: أداة مناوبات عبر تيليغرام بعد إغلاق Opsgenie



