
Google’ın veri serileştirme teknolojisi Protocol Buffers’ın JavaScript implementasyonu olan protobuf.js’te kritik bir uzaktan kod yürütme (RCE) açığı tespit edildi. Güvenlik araştırmacıları tarafından yayımlanan kavram kanıtı (PoC), açığın pratikte kolayca istismar edilebileceğini ortaya koyuyor.
Yaygın Kullanım Açığın Etki Alanını Büyütüyor
Söz konusu kütüphane, npm ekosisteminde haftalık yaklaşık 50 milyon indirme ile oldukça yaygın bir kullanım alanına sahip.
Protobuf.js:
- Mikroservis mimarilerinde
- Gerçek zamanlı uygulamalarda
- Bulut ve veritabanı sistemlerinde
yoğun şekilde kullanıldığı için, açığın etkisi yalnızca tekil uygulamalarla sınırlı kalmıyor; geniş bir ekosistemi tehdit ediyor.
Açığın Kaynağı: Güvensiz Dinamik Kod Üretimi
Güvenlik firması Endor Labs tarafından yapılan analize göre zafiyetin temel nedeni, kütüphanenin dinamik kod üretim mekanizması.
Kütüphane:
- Protobuf şemalarından string birleştirerek JavaScript fonksiyonları oluşturuyor
- Bu fonksiyonları
Function()yapıcısı ile çalıştırıyor
Ancak kritik sorun şu: şemadan gelen tanımlayıcılar (örneğin mesaj adları) yeterince doğrulanmıyor.
Açık yalnızca sunucu tarafını değil, geliştirici makinelerini de etkileyebiliyor.
Eğer geliştiriciler, güvenilmeyen şemaları lokal ortamda yüklüyorsa saldırı doğrudan geliştirme ortamına sıçrayabiliyor.
Saldırı Senaryosu: Şema Üzerinden Kod Enjeksiyonu
Bu zafiyet, saldırganların kötü amaçlı bir protobuf şeması oluşturarak şu zinciri çalıştırmasına olanak tanıyor:
- Zararlı şema sisteme yüklenir
- Şema içindeki manipüle edilmiş tanımlayıcılar fonksiyon üretimine dahil edilir
- Üretilen fonksiyon içinde rastgele kod enjekte edilir
- Uygulama mesajı işlerken bu kod çalıştırılır
Sonuç olarak:
- Ortam değişkenlerine erişim
- Kimlik bilgisi sızıntısı
- Veritabanı erişimi
- İç ağda yatay hareket (lateral movement)
mümkün hale geliyor.
Etkilenen Sürümler ve Yama
Zafiyet şu sürümleri etkiliyor:
- 8.0.0 ve altı
- 7.5.4 ve altı
Güvenli sürümler:
- 8.0.1
- 7.5.5
Yama kapsamında:
- Tür adlarında alfanümerik olmayan karakterler temizleniyor
- Fonksiyon enjeksiyonunun önü kesiliyor
Ancak araştırmacılar, uzun vadeli çözümün Function() tabanlı dinamik yürütmenin tamamen kaldırılması olduğunu belirtiyor.
İstismar Durumu ve Risk Seviyesi
Endor Labs’a göre:
- Açığın istismarı kolay
- PoC kodu bunu doğruluyor
Ancak şu ana kadar aktif saldırı tespit edilmedi. Bu durum, riskin düşük olduğu anlamına gelmiyor; aksine açık yaygın olarak kullanılabilecek bir “hazır saldırı vektörü” sunuyor.
Güvenlik Önerileri
Sistem yöneticileri ve geliştiriciler için öneriler:
- Kütüphaneyi derhal güncelleyin
- Geçişli bağımlılıkları (dependencies) denetleyin
- Şema yüklemeyi güvenilmeyen girdi olarak değerlendirin
- Üretimde statik / önceden derlenmiş şemalar kullanın
Bu olay, modern JavaScript ekosisteminde yaygın olarak kullanılan paketlerin, dinamik kod üretimi gibi riskli tasarım kararları nedeniyle ciddi güvenlik açıklarına dönüşebileceğini gösteriyor.
Özellikle mikroservis ve bulut tabanlı sistemlerde, bu tür bir RCE açığı tam sistem ele geçirilmesine kadar ilerleyebilecek kritik sonuçlar doğurabilir.
Daha fazla siber güvenlik haberi ve güncel gelişmeler için SiberHavadis’i takipte kalın!





