· kaynak dev.to (home feed)
Popüler 30 Docker imajından on tanesi hâlâ Chrome'un kaldırdığı emSign kök sertifikasına güveniyor
dev.to üzerinde yapılan bir tarama, 30 yaygın Docker imajından 10'unın, Mozilla NSS'in 20 Ekim'de kaldırdığı ve Chrome'un 27 Ekim'de takip ettiği iptal edilmiş emSign ECC Root CA - G3 sertifikasını hâlâ taşıdığını ortaya koydu.

Tarayıcılar hareket etti, imajlar etmedi
Chrome, 27 Ekim 2026'da emSign ECC Root CA - G3 sertifikasını güvenilen kök sertifikalar listesinden çıkardı ve böylece kök sertifikayı 20 Ekim'de kaldıran Mozilla'nın NSS kütüphanesine yetişti. Bu kaldırma işlemleri, sekiz eMudhra ara sertifikasındaki zayıf anahtarlarla ilgili bir olayın ardından geldi. Google Security Blog'u kaynak gösteren bir dev.to analizine göre Chrome, 17 Ekim'de gelen bir bildirimden sonraki birkaç saat içinde etkilenen ara sertifikaları CRLSet üzerinden engelledi ve Firefox da 19 Ekim'de eşdeğer korumayı OneCRL ile yayınladı. Yazının atıfta bulunduğu bir oss-security duyurusuna göre NSS 3.131.1, emSign ECC Root CA - G3, emSign Root CA - C1 ve emSign ECC Root CA - C3 olmak üzere üç emSign kök sertifikasına güvenmeyi bıraktı.
Bu iptal kanalları yalnızca tarayıcılara ulaşıyor. dev.to yazısının da belirttiği gibi curl, Python'ın requests kütüphanesi, Go'nun net/http paketi, Node ve JVM; CRLSet veya OneCRL okumuyor ve varsayılan olarak iptal durumunu kontrol etmiyor. Sunucu tarafı ve container içinde çalışan kod için tek gerçek denetim noktası, trust store içinde bulunan şeydir — ve kök sertifika hâlâ oradaysa uygulama ona giden sertifika zincirlerini kabul etmeye devam eder.
Tarama ne buldu
Yazar, 24 Ekim 2026'da en yaygın kullanılan 30 Docker imajını linux/amd64 için taradı; imaj katmanlarını doğrudan registry'den okuyarak her trust store'un nihai içeriğini inceledi: sistem CA paketleri, Python'ın certifi paketi ve Java'nın cacerts deposu.
On imaj hâlâ G3 içeriyordu; bunlar arasında alpine:3.20, golang:1.24-alpine, amazonlinux:2023, amazoncorretto:21, eclipse-temurin:17-jre, eclipse-temurin:21-jre, her iki distroless Debian 12 varyantı, python:3.12-slim ve python:3.12-alpine yer alıyor.
On imajda ise paketler G3'ten zaten arındırılmıştı — aralarında alpine:3.22, alpine:latest, redhat/ubi9-minimal, python:3.13, node:22-alpine, her iki nginx imajı, httpd:2.4 ve curlimages/curl bulunuyor — ancak bu gruptaki dört Debian trixie tabanlı imaj, NSS'in güvenmeyi bıraktığı C1 ve C3 kök sertifikalarını hâlâ içeriyordu.
Geri kalan on imaj — debian ve ubuntu imajları, node:*-slim varyantları, redis:7 ve postgres:16 dahil — hiç CA paketi içermiyordu.
Dikkat çekmeye değer üç bulgu
Tek bir imaj birden fazla trust store barındırabilir. python:3.12-slim'in sistem paketi temizdir, ancak pip tarafından kurulan certifi kopyası hâlâ G3 içeriyor. Temurin imajları hem işletim sistemi paketini hem de JDK'nın cacerts deposunu taşıyor ve ikisi de hâlâ kök sertifikayı içeriyor.
Güncel bir derleme tarihi pek bir şey ifade etmiyor. Yazıya göre amazonlinux:2023 ve amazoncorretto:21, NSS düzeltmesinden üç gün sonra 23 Ekim'de derlenmiş olmasına rağmen hâlâ dört emSign kök sertifikasını taşıyordu.
Paketin olmaması güvenlik demek değil. Minimal imajlar ca-certificates olmadan geliyor; dolayısıyla imajınıza neyin gireceği, Dockerfile'ınızın onu kurduğu anda kullanılan paket yansısına veya derleme önbelleğine bağlıdır.
Nasıl düzeltilir
Yazı kısa bir kontrol listesi sunuyor. Kendi katmanlarınız yeni trust store'lar ekleyebileceği için yalnızca temel imajı değil, tamamlanmış uygulama imajınızdaki trust store'ların envanterini çıkarın — ca-certificates.crt, cacert.pem, ca-bundle.crt ve cacerts dosyalarını arayın. Her PEM paketini openssl storeutl ile inceleyin ve kök sertifikanın adını grep ile arayın; Java keystore'larını da keytool ile kontrol edin. Ardından docker build --pull --no-cache ile taze katmanlardan yeniden derleyin ve kontrolleri tekrarlayın.
Çözüm, store'un türüne bağlıdır: ca-certificates paketini paket yöneticisi üzerinden güncelleyin, certifi'yi yükseltin (yazının aktardığına göre Endor Labs ve SafeDep'e göre 2026.10.19 sürümü G3'ü kaldırdı) veya JDK güncellemesi gelene kadar keytool -delete ile cacerts'teki emSign kayıtlarını silin. SSL_CERT_FILE ile Python'ı sistem paketine yönlendirmek, bakım gereken paket sayısını azaltır. Shell içermeyen imajlar için yazı, dosyaları çıkarmak üzere docker create ve docker cp kullanmayı öneriyor. Son olarak düzenli --pull ile derlemeleri zamanlayın ve paket kontrolünü CI'da çalıştırın.
Neden önemli
Tarayıcı üreticileri bu olayı saatler içinde kontrol altına aldı, çünkü tarayıcılar kendilerini güncelliyor; container imajları ise farklı bir saat ve farklı bir tedarik zincirinde duruyor ve biri onları yeniden derleyene kadar değişmeyecek. Bayatlamış bir trust store, bir backend servisinin artık her tarayıcının reddettiği sertifika zincirlerini sessizce kabul etmeye devam etmesi demek — kullanıcıların güvenli olarak gördüğü ile altyapınızın gerçekte güvendiği şey arasındaki bir ayrışma. Taramanın, yazarın açıkça belirttiği sınırları var: tek seferlik bir linux/amd64 anlık görüntüsüdür, Node'un yerleşik deposunu ve uygulamayla birlikte gelen sertifikaları atlamıştır ve bir kök sertifikanın bulunması yalnızca istemcilerin ona giden zincirleri kabul edeceğini gösterir, bir saldırı gerçekleştiğini değil. Pratik ders yine de geçerli: bir sonraki CA olayı tarayıcı üreticilerinin takvimine göre gelecek, ancak olaya maruz kalmanız yeniden derleme sıklığınız tarafından belirlenecek.
- #docker
- #security
- #tls
- #containers
- #pki