Haberler ve analiz
Güncelleme kimi etkiler: Netflix'in aracı, TypeScript 7.1, Node 24.22 ve curl'deki 22 açık
Netflix kütüphanelerin etki alanını ölçüyor; TypeScript 7.1 beta, Node.js 24.22, Bun, Deno ve curl yamaları çıktı. Benim sıram: bugün ne güncellenir, ne sonraya kalır.
Ekim'in on gününde güncellemeler birikti: Node.js 24.22, Bun 1.4.4, Deno 2.9.8, TypeScript 7.1 betası, curl 22 güvenlik açığını kapattı, Cloudflare da TypeScript'i Rust'a taşımaya başladı. Netflix aynı dönemde, bir kütüphane yayımlanmadan önce onu kimin çağırdığını gösteren bir aracı anlattı. Kendi sistemi çalışan bir işletme sahibi için soru basit: bunlardan hangisi bugün kurulur, hangisi bir ay sonra, hangisine hiç dokunulmaz. Cevap, güncellemenin kimi etkileyeceğine bağlı.
Neler çıktı
Netflix 23 Ekim'de kütüphane değişikliklerinin etki alanını ölçen Quasar aracını anlattı. Ortak bir Java kütüphanesinin yazarı kendi API'sinin diff'ini görüyor, ama çok sayıda depodan hangisinin silinen metodu hâlâ çağırdığını ve hangi sürümde olduğunu görmüyor. Quasar bütün depolardaki sembol tanımlarını ve referanslarını indeksliyor, pull request kontrolünde de silinen ya da değişen sembollere kimin başvurduğunu hesaplıyor. Açıklamadaki dürüstlüğü beğendim: “referans bulunamadı” yalnızca indekslenen kısımda referans olmadığı anlamına geliyor, reflection ve dinamik yükleme bir tüketiciyi gizleyebilir. Araç riski gösteriyor, yayını yasaklamıyor.
TypeScript 20 Ekim'de 7.1 betasını yayımladı. Bu sürümle ambient modül bildirimlerinde import öznitelikleri geldi: declare module "*" with { type: "css" } yazabiliyorsunuz ve import'ta özniteliği unutursanız hata alıyorsunuz. Cloudflare aynı gün VoidZero ve Owner.com'dan Max Schwenk ile birlikte TypeScript'in Rust'a taşınmış hali tsrs'yi tanıttı. Onların ölçümlerine göre tsrs, aynı sayıda worker'la TypeScript 7.0'dan 8 kata kadar hızlı ve yaklaşık %70 daha az bellek kullanıyor; 7.1 betası da 7.0'dan 2,5 kata kadar hızlı. Durumu deneysel, ona fork demiyorlar.
Node.js 14 Ekim'de 24.22.0 LTS'i yayımladı. Öne çıkanlar listesinde crypto.parsePKCS12(), ortak bir MAC API'si, util.throttle ve util.debounce, sqlite'ta StatementSync.close() ve net.BoundSocket'in thread'lere ve alt süreçlere aktarılması var. Düzeltmelerden, başlatılmamış bellek döndürebilen Hmac.digest()'i not ederdim.
Bun 22 Ekim'de 39 katkıcıyla 1.4.4'ü yayımladı; GitHub'daki sürüm sayfasında yalnızca kurulum komutları ve bloga bir bağlantı var, içeriğini oradan incelemedim. Deno 21 Ekim'de 2.9.8'i yayımladı: deno compile artık dinamik olarak import edilen yerel dosyalar için okuma iznini kontrol ediyor, ele geçirilmiş eMudhra sertifika otoriteleri güvenilenler listesinden çıkarıldı, rand 0.9.x de düzeltilmiş sürüme yükseltildi.
Ubuntu 14 Ekim'de CVE-2026-92392 ve curl'deki diğer açıklar için düzeltmeleri anlatan bir yazı yayımladı. Daniel Stenberg 7 Ekim'de 22 güvenlik açığını kapatan bir sürüm geleceğini duyurmuştu, 14 Ekim'de de açıklar plana göre açıklandı. Biri yüksek olarak derecelendirildi: CVE-2026-92392, Ubuntu güvenlik ekibinin değerlendirmesinde CVSS 8.1, kötü niyetli bir sunucuya bağlanırken uzaktan kod çalıştırma imkânıyla. Yalnızca Ubuntu 26.04 LTS'i etkiliyor; diğer açıklar desteklenen bütün sürümler için USN-8927-1 ve USN-8932-1 ile kapatıldı. Hem curl aracı hem de libcurl kütüphanesi etkileniyor, yani onunla derlenen her şey. Paketleri kontrol etmek için apt list '?installed ?source-package(^curl$)' komutunu öneriyorlar.
Tek sunucuda etki alanı
Bir hizmet şirketinin tek sunucusunda site, API, telefon sistemi ve belge parser'ları yaşıyor. Node güncellemesi API'yi ve siteyi etkiliyor. Sistemdeki curl'ün güncellenmesi ise libcurl üzerinden bağlantıdan dosya indiren her şeyi etkiliyor, script'lerden sistem araçlarına kadar. Netflix'in “bu sembolü kim çağırıyor” sorusu burada daha basit: bu imajdan hangi konteynerler derlendi ve hangi script'ler bu kütüphaneye bağlı.
Bende nasıl çalışıyor
kononov.dev sitesi Next.js, Node.js 24, SQLite ve Docker üzerinde çalışıyor, yani 24.22 dalı beni doğrudan ilgilendiriyor. Şirket içi bir servis olan “Birlikte Kahve” React ve TypeScript ile yazıldı ve aynı 2 GB bellekli sunucuda Cloudflare Workers runtime'ında çalışıyor. Güncellemede eski kopya, yenisi başlamadan önce durduruluyor; derlemeye bellek yetmezse imajı sunucu dışında derliyorum. Etki alanını böyle sınırlıyorum: imaj ayrı derlenip kontrol ediliyor, sunucuya hazır hali gidiyor.
ABD'deki PDR şirketinde güvenlik konuları bana geliyor ve dünyada büyük bir açık çıktığında bunun bizi ilgilendirip ilgilendirmediğini kontrol ediyorum. Oradaki sunucular Ubuntu değil, Google Cloud'da Debian üzerinde, ama curl her sistemde var. Şirketin iç API'sini üçüncü sürüme kadar getirdim ve ona birkaç uygulama bağlı: AppSheet, süper uygulama, site, TV panosu. API'yi değiştirmeden önce onu kimin çağırdığına Netflix'le aynı yöntemle bakıyorum, sadece indeks olmadan: uygulama listesi ve kodda arama. TypeScript 7.1 betasını ve tsrs'yi yayına almıyorum; içlerinde ne olduğunu açıklamalara göre değerlendiriyorum.
Ben ne yapardım
Sunucuda neyin durduğunu ve neyden derlendiğini listeleyin: Node ve Python sürümleri, temel imajlardaki sistem paketleri.
curl'ü ve diğer sistem paketlerini bugün güncelleyin. Debian ve Ubuntu için bu apt, Docker imajları için temel katmanın yeniden derlenmesi.
Node 24.22'yi imaja koyun, kontrolleri çalıştırın ve geri alma hazır olacak şekilde yayına alın.
Kendi API'nizi değiştirmeden önce bütün tüketicilerini bulun ve sürümün yanına yazın. Eski metodu liste boşaldıktan sonra silin.
Güncellemede onlar da yeniden başlatılan arka plan süreçleri hakkında worker'lar yazısı var. İç API hakkında kendi API'si sayfası, TypeScript üzerindeki servis hakkında da “Birlikte Kahve” projesi var. Yamaları kurma sıram Node.js, Python ve Next.js yama haftası incelemesinde, başkalarının API sürümleri kapatma tarihleri incelemesinde, yerel yayın hattı burada. Bir Docker uygulamasını sürüme geri dönme imkânıyla yayına almayı daha önce ele almıştım. Hizmet alanı: yayınlanabilen ve geri yüklenebilen altyapı. Güncellemeleriniz birikmişse ve nereden başlayacağınız belli değilse sunucuda ne olduğunu anlatın. Görevi konuşalım.