- Son doğrulama
- 31 Eki 2026
- CVE
- CVE-2026-99999
- Durum
- Upstream fix mevcut. 31 Ekim 2026 itibarıyla Workbench release notes'ta listelenmiyor.
Kısa özet
CVE-2026-99999, takma adıyla PwnEscape, Linux kernel IPv4 stack’indeki bir açık. Bozuk checksum offload metadata’sı, kernel’in zaten işlediği bir IPv4 header’ı ezebiliyor. Araştırmacı lab ortamında host kernel memory sızıntısı, crash ve root olarak kod çalıştırma gösterdi. Upstream fix (commit 6785011f8b16) 14 Ekim 2026’da merge edildi. Linux kernel CVE ekibi Critical, Red Hat Important olarak derecelendiriyor.
Bu not kendi Workbench instance’larınızdaki kernel ile ilgili. Google’ın altyapısı hakkında bir şey söylemiyor. Notebook’ta kod çalıştırabilen herkes o VM’de local kullanıcıdır ve local bir saldırgan bu açığa erişebilir. Risk, instance üzerinde root yetkisine yükselmektir. Instance’ta root olan biri, instance’ın service account’unun erişebildiği her şeye erişebilir.
Patch durumu. Workbench release notes’u 31 Ekim 2026’da kontrol ettik (26 Ekim’e kadar olan kayıtlar). CVE-2026-99999 ya da bir kernel güncellemesi geçmiyor ve Google Cloud’un bu açık için bir güvenlik bülteni bulamadık. Bu “listelenmemiş” demek, “düzeltilmemiş” demek değil. Kendi instance’larınızı kontrol edin.
Bir instance’ı kontrol edin
Instance üzerinde kernel’e ve OS sürümüne bakın:
uname -r
cat /etc/os-release
apt-get update && apt list --upgradable 2>/dev/null | grep linux-image
Kernel’i dağıtımınızın tracker’ı ile karşılaştırın. Debian için düzeltilmiş sürümler:
| Release | Düzeltilmiş kernel paketi |
|---|---|
| bookworm (security) | linux 6.1.190-1 |
| bookworm (security) | linux-6.12 6.12.113-1~deb12u1 |
| trixie (security) | linux 6.12.113-1 |
İki patch yolu ve her birinin sınırı
A. Workbench instance’ını upgrade etmek. Boot disk’i en yeni image ile değiştirir, /home/jupyter kalır. Yalnızca en yeni image fixed kernel içerdiğinde işe yarar ve Google’ın notları bunu henüz doğrulamıyor. Ayrıca dual disk instance gerekir, instance’ın çalışıyor olması gerekir ve boot disk’e kendiniz kurduğunuz OS paketleri silinir. Önce yedek alın.
gcloud workbench instances check-instance-upgradability INSTANCE --location=ZONE
gcloud workbench instances upgrade INSTANCE --location=ZONE
B. Instance içinde OS’i patch’lemek. Paketleri güncelleyip reboot edersiniz. Bugün çalışır ve image’da fix yokken tek seçenektir.
sudo apt-get update && sudo apt-get dist-upgrade -y
sudo reboot
Boşluk: kapalı instance’lar hiç patch’lenmiyor
Workbench bir instance’ı zamanlanmış olarak upgrade edebilir. Zamanlama, notebook-upgrade-schedule metadata anahtarında, unix cron formatında ve GMT olarak tutulur. Google’ın dokümantasyonuna göre zamanlanmış upgrade’ler kapalı instance’larda çalışmaz ve bir instance ancak çalışırken upgrade edilebilir.
Çoğu ekip maliyet için notebook’ları geceleri ya da idle shutdown ile kapatır. Bu instance’lar haftalarca eski kernel’de kalabilir. Sonra biri birini açıp production verisiyle çalışır.
Kapalı instance’lar için otomasyon
Fikir basit. Haftada bir, kapalı her instance’ı başlat, kontrol et, yükseltilecek bir şey varsa upgrade et ve tekrar kapat. Aşağıdaki script bir başlangıç noktasıdır. Sizin projenizde çalıştırılmadı, bu yüzden önce production dışı bir instance’ta deneyin.
#!/usr/bin/env bash
# Taslak. Önce production dışı bir instance'ta deneyin.
set -euo pipefail
PROJECT="${PROJECT:?PROJECT tanimlayin}"
LOCATIONS="${LOCATIONS:?LOCATIONS tanimlayin, ornek: 'europe-west4-a us-central1-a'}"
for LOC in $LOCATIONS; do
gcloud workbench instances list --project "$PROJECT" --location "$LOC" \
--format="value(name.basename(),state)" | while read -r NAME STATE; do
WAS_STOPPED=false
if [ "$STATE" = "STOPPED" ]; then
WAS_STOPPED=true
gcloud workbench instances start "$NAME" --project "$PROJECT" --location "$LOC"
fi
# Sadece Google bu instance için daha yeni bir image sunuyorsa upgrade et.
if gcloud workbench instances check-instance-upgradability "$NAME" \
--project "$PROJECT" --location "$LOC" --format="value(upgradeable)" | grep -qi true; then
gcloud workbench instances upgrade "$NAME" --project "$PROJECT" --location "$LOC"
fi
# Instance'i buldugumuz haline geri getir.
if [ "$WAS_STOPPED" = true ]; then
gcloud workbench instances stop "$NAME" --project "$PROJECT" --location "$LOC"
fi
done
done
Bunu kendi makineniz olmadan her hafta çalıştırmak için Cloud Run job olarak paketleyin ve Cloud Scheduler ile tetikleyin:
- Job için bir service account oluşturun ve ona yalnızca Workbench instance’larını listelemek, başlatmak, durdurmak ve upgrade etmek için gereken yetkileri verin.
- Script’i Google Cloud CLI image’ı tabanlı bir container image’a koyun ve job’u
gcloud run jobs createile oluşturun. - Cloud Run job’unun
:runendpoint’ini o service account ile çağıran bir Cloud Scheduler job’u oluşturun, örneğin0 3 * * 0.
Devreye almadan önce karar vermeniz gereken birkaç konu var:
- İşlem sırası. Upgrade boot disk’i değiştirir, bu yüzden biri kullanırken çalıştırmayın. Geceleri çalıştırın ve son saatlerde aktif olan instance’ları atlayın.
- Veri.
/home/jupyterdışındaki her şey ve boot disk’e kurduğunuz her şey korunmaz.--userile pip kurulumunu ve bir bootstrap script’ini standart yapın. - Görünürlük. Job sonucunu Cloud Logging’e gönderin ve hatalarda alarm kurun. Kimsenin izlemediği bir patch job’u, bir sonraki unutulmuş sunucudur.
Nasıl yardımcı olabiliriz?
AI platform ekipleri için bu tür fleet hygiene işlerini kuruyoruz: patching, idle shutdown, maliyet label’ları ve Google Cloud’daki notebook’lar için guardrail’ler. Bunun projenizde çalışmasını istiyorsanız aşağıdaki butondan bir görüşme ayarlayın.