Ulaşım
- Adres:Batıkent Mh. 8910 Sk. 6. Etap 1H No: 18 Yeni Toki Eyyübiye / Şanlıurfa (Yeni Alım Satım Karşısı)
- Telefon:0 (545) 528 88 93
- eMail: info@alestaweb.com
Docker ve Kubernetes altyapınızı tehdit eden kritik bir güvenlik açığı keşfedildi! runC container runtime'ında bulunan 3 yeni zafiyet (CVE-2025-31133, CVE-2025-52565, CVE-2025-52881), saldırganların container'dan kaçarak host sisteme erişmesine olanak tanıyor. Alesta Web olarak bu container escape vulnerability rehberinde sorunu ve çözümünü detaylıca anlatıyoruz.
Önce temel kavramları açıklayalım. runC, Open Container Initiative (OCI) tarafından geliştirilen düşük seviyeli bir container runtime. Basitçe söylemek gerekirse, Docker'ın, Kubernetes'in ve bulut tabanlı managed container servislerinin "motoru" gibi düşünebilirsiniz. Container'ları gerçekten başlatan ve yöneten yazılım runC.
İşte tam da bu yüzden runC'deki bir güvenlik açığı (security vulnerability) bu kadar tehlikeli. runC zayıfsa, üzerinde çalışan Docker, Kubernetes ve tüm container ekosistemi risk altında demek. Alesta Web ekibi olarak müşterilerimizin altyapılarında bu tür zafiyetlerle sıkça karşılaşıyoruz.
Bu güvenlik açıkları (security vulnerabilities) 5 Kasım 2025'te SUSE güvenlik araştırmacıları tarafından açıklandı. Hemen yamalamanız gerekmektedir (immediate patching required)! Saldırganlar bu açıklarla container'dan host sisteme erişebilir (container escape to host).
Bu zafiyet, runC'nin "masked paths" mekanizmasını hedef alıyor. Normalde container içindeki bazı hassas dizinler (mesela /proc altındaki dosyalar) maskelenerek erişime kapatılır. Ama burada bir saldırgan /dev/null'u bir sembolik link (symlink) ile değiştirerek, runC'nin hassas procfs dosyalarını read-write olarak bağlamasını (mount) sağlıyor.
# Saldırgan container içinde şunu yapıyor:
# Attacker inside container does:
# /dev/null -> /proc/sys/kernel/core_pattern symlink
# Bu sayede host'un core_pattern dosyasına yazma erişimi elde ediyor
# This gives write access to host's core_pattern file
# Sonuç: Container escape + Host üzerinde root yetki
# Result: Container escape + Root privileges on host
Bu ikinci zafiyet ise bir yarış koşulu (race condition) üzerine kurulu. /dev/console bind mount işlemi sırasında, güvenlik korumaları tam olarak devreye girmeden önce saldırgan bir symlink oluşturabiliyor. Yani container'ın güvenlik duvarı kapanmadan içeri girilmiş oluyor.
Üçüncü zafiyet de yine mount manipülasyonu ve sembolik link kötüye kullanımıyla container izolasyonunu kırıyor (breaks container isolation). Her üç CVE de birlikte kullanıldığında tam bir container escape saldırısı gerçekleştirilebilir.
| CVE ID | Tür / Type | Şiddet / Severity |
|---|---|---|
| CVE-2025-31133 | Masked Path Abuse | Yüksek (High) |
| CVE-2025-52565 | Race Condition | Yüksek (High) |
| CVE-2025-52881 | Mount Manipulation | Yüksek (High) |
Bu güvenlik açıkları (security vulnerabilities) neredeyse tüm runC sürümlerini etkiliyor. Alesta Web olarak kontrol etmeniz gereken sistemler:
# Docker üzerinde runC versiyonunu kontrol et
# Check runC version on Docker
docker info | grep runc
# Direkt runC versiyonu
# Direct runC version
runc --version
# Kubernetes node'larında kontrol
# Check on Kubernetes nodes
kubectl get nodes -o wide
ssh node1 "runc --version"
Hadi gelelim asıl önemli kısma: bu açıkları nasıl kapatacağız? Alesta Web güvenlik ekibi olarak şu adımları izlemenizi öneriyoruz:
# Ubuntu/Debian sistemlerde
# On Ubuntu/Debian systems
sudo apt update
sudo apt install --only-upgrade runc
# CentOS/RHEL sistemlerde
# On CentOS/RHEL systems
sudo yum update runc
# Yamalı sürümler / Patched versions:
# runC 1.2.8
# runC 1.3.3
# runC 1.4.0-rc.3 veya üzeri
# Docker Engine güncelleme
# Update Docker Engine
sudo apt update
sudo apt install --only-upgrade docker-ce docker-ce-cli containerd.io
# Docker versiyonunu doğrula
# Verify Docker version
docker version
docker info | grep runc
# containerd güncelleme
# Update containerd
sudo apt install --only-upgrade containerd.io
# kubelet yeniden başlat
# Restart kubelet
sudo systemctl restart kubelet
# Node durumunu kontrol et
# Check node status
kubectl get nodes
Güncelleme sonrası runc --version komutunun 1.2.8, 1.3.3 veya 1.4.0-rc.3+ gösterdiğinden emin olun (make sure the version shows 1.2.8, 1.3.3, or 1.4.0-rc.3+).
Hemen yama yapamıyorsanız, Alesta Web olarak şu geçici önlemleri öneriyoruz:
Container'larınızı user namespace ile çalıştırmak, bu saldırıların çoğunun en tehlikeli yönlerini engeller (blocks most serious aspects of these attacks). Host root kullanıcısı container'ın user namespace'ine eşlenmediğinde, saldırgan procfs dosyalarına erişemez.
# Docker'da user namespace etkinleştir
# Enable user namespaces in Docker
sudo dockerd --userns-remap=default
# Veya daemon.json dosyasına ekle
# Or add to daemon.json
{
"userns-remap": "default"
}
Bu makalede kullanılan bilgiler aşağıdaki güvenilir kaynaklardan derlenmiştir (information compiled from the following reliable sources):
Alesta Web olarak tüm bilgileri doğruladık ve test ettik (we verified and tested all information).
runC container escape güvenlik açıkları (security vulnerabilities) ciddi bir tehdit oluştursa da, doğru yamalar ve önlemlerle sisteminizi koruyabilirsiniz. Alesta Web olarak güvenlik konusunda her zaman proaktif olmayı öneriyoruz.
Hızlı Özet / Quick Summary:
Faydalı Linkler / Useful Links:
© 2026 AlestaWeb - Tüm hakları saklıdır.