Ubuntu 26.04 çekirdek güncellemesi AppArmor ile konteynerleri bozuyor
Ubuntu 26.04 çekirdeğindeki güvenlik yaması AppArmor profil yığınlamasını değiştirdi. Konteynerlerde sinyaller reddediliyor; gosu, PostgreSQL ve Percona podları takılıyor.

Ubuntu 26.04 çekirdeğindeki bir güvenlik yaması, üretim ortamlarındaki konteynerleri beklenmedik biçimde çalışmaz hale getirebiliyor. AppArmor'daki değişiklik nedeniyle konteyner içindeki süreçler, aynı uid'e sahip kendi süreçlerine bile sinyal gönderirken Permission denied hatası alıyor. Sorun Kubernetes, k3s, RKE2 ve Docker sunucularını kapsıyor.
Sorun nasıl ortaya çıkıyor
Etkilenen ortam, Ubuntu 26.04 veya 7.0.0-41+ sürümünden backport alan çekirdekler; linux-aws ve linux-azure gibi bulut derlemeleri de dahil. Ayrıca kernel.apparmor_restrict_unprivileged_unconfined=1 ayarı (26.04'te varsayılan) açık olmalı ve containerd ya da Docker standart AppArmor profiliyle çalışmalı.
Çekirdek günlüğünde apparmor="DENIED" operation="signal" ve peer="cri-containerd.apparmor.d//&unconfined" gibi kayıtlar görülüyor. PostgreSQL could not signal for checkpoint: Permission denied hatası veriyor. gosu ve setuid çağıran her Go programı ise %100 CPU kullanıyor, ancak servis başlamıyor ve log üretilmiyor. Yazar durumu, Kubernetes kümesinde düğüm kaynakları değiştirildikten sonra ayağa kalkmayan PXC (Percona Operator for MySQL) podları ve ardından hiç Ready olmayan bir uygulama üzerinden anlatıyor.
Neden oluyor
Ubuntu'da Şubat 2025'ten beri etkin olan parametre, CAP_MAC_OVERRIDE yetkisi olmayan unconfined bir sürecin profil değiştirmesini engelliyor; yeni profil unconfined'in üzerine yığın olarak ekleniyor. 08c2f7c8d4b1 numaralı commit (CVE-2026-90231) bu kısıtın aşılmasını kapattı ve exec sırasında da zorunlu yığınlamayı uygulamaya başladı.
runc önce capability'leri bırakıyor, sonra konteyner sürecini exec ediyor. Sonuçta standart profili kullanan her konteyner cri-containerd.apparmor.d//&unconfined etiketiyle çalışıyor (Docker'da docker-default//&unconfined). containerd profil şablonu ise sinyallere yalnızca tam olarak cri-containerd.apparmor.d adından izin veriyor. Bileşik etiket bu kurala uymadığından çekirdek, aynı konteynerdeki süreçler ve iş parçacıkları arasındaki sinyalleri bile reddediyor.
Geçici çözümler ve takvim
Hızlı çözüm olarak PerconaXtraDBCluster CR'sinde AppArmor kapatılabiliyor; alternatif olarak crictl inspect ile host-PID bulunup sinyal düğümden root olarak gönderilebiliyor. Yazara göre etkilenmeyen son çekirdek linux 7.0.0-38.38. 7.0.0-42.42 resolute-security'ye girdi ve unattended-upgrades de bunu kuruyor. 7.0.0-43.43'te belirtiler sürüyor, 7.0.0-44.44 ise proposed aşamasında. LP #2172422 ve containerd#14485 açıldı, profil düzeltmesi için PR #14487 önerildi. Veriler arasında küçük bir tutarsızlık var: bazı raporlar ilk hatalı sürümü 7.0.0-41 olarak gösteriyor, bazıları yalnızca -42'yi denedi.
Göz atmaya değer uygulamalar
Doğru kareleri seçin, toplayın, hedefe ulaşın. Öğrenmesi kolay, ustalaşması zor. Ücretsiz, her yaşa uygun.
Yapay zekâ sohbet partneriyle konuşun; her cümleniz düzeltilip kendi dilinizde açıklanarak geri gelsin. 9 dil, A1'den C2'ye.
EDIFACT ve X12 mesajlarını açın, her segment açıklansın, JSON/XML'e çevirin, PDF ve Excel'e aktarın. Yerelde çalışır, yükleme yok.
Kime, hangi özel gün için ve nasıl bir karakter olduğunu seçin. Arama motoru yerel mağazaların ürün açıklamalarını okuyup uygun olanları sıralar. Ücretsiz, kayıt yok.
Aynı günden diğer haberler
Tümünü gör →
LINE'a mesaj zamanlama geliyor: 1 yıla kadar, şimdilik ücretsiz

Flipper One Kickstarter lansmanına hazır, fiyat 379 dolardan

Dezhurka: Opsgenie kapanırken Telegram tabanlı nöbet aracı



