Protobuf.js’te Kritik RCE Açığı: Milyonlarca Uygulama Risk Altında

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:

  1. Zararlı şema sisteme yüklenir
  2. Şema içindeki manipüle edilmiş tanımlayıcılar fonksiyon üretimine dahil edilir
  3. Üretilen fonksiyon içinde rastgele kod enjekte edilir
  4. 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!

Related Posts

Çince Konuşan Tehdit Aktörleri: OctLurk ve SilkLurk ile Orta Asya Hükümetlerini Hedef Alıyor

Siber güvenlik kuruluşu Kaspersky, Çince konuştuğu değerlendirilen gelişmiş bir tehdit aktörünün Ocak 2025’ten bu yana Afganistan, KSaldırılarda, tespiti zorlaştırmak amacıyla doğrudan sistem belleğine (RAM) enjekte edilen ve disk üzerinde neredeyse…

Kritik Altyapılara Dijital Darbe: ABD Su Tesislerinde PLC Zafiyeti ve Manuel Operasyon Alarmı

Temmuz 2026’nın son günlerinde ABD’de kritik altyapıları hedef alan koordineli siber saldırılar yaşandı. Başta Minnesota olmak üzere en az yedi eyaletteki su ve atık su tesisleri, operasyonel teknoloji (OT) sistemlerini…

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir