RubyGems'te CDN Önbellek Hatası: Eski API Anahtarları Sızabilirdi
RubyGems.org'da CDN önbellekleme hatası eski API anahtarlarının başka kullanıcılara sızmasına yol açtı; CVSS 7.2, tüm eski anahtarlar iptal edildi.
RubyGems.org'daki bir Fastly CDN önbellekleme hatası, sisteme giriş yapan bir kullanıcının yeni oluşturulan API anahtarının, aynı uç düğümden bir saat içinde giriş yapan başka bir kullanıcıya sunulmasına yol açabiliyordu. Sorun, gem istemcisinin varsayılan olarak gzip sıkıştırma istemesi, bunun ETag üretimini engellemesi ve sonuçta Vary: Authorization içermeyen ham bir no-cache başlığına düşülmesinden kaynaklanıyordu. Bu durum, v3.2.0'dan (Aralık 2020) eski gem istemcilerini etkiliyor; bugün hâlâ girişlerin %18'i bu sürümlerden yapılıyor ve macOS'un (Tahoe) sistemle birlikte gelen gem aracı da dahil.
Sızan bir anahtar, ilgili hesap adına yeni sürüm yayınlama, sürüm geri çekme, sahip ekleme veya trusted publisher/webhook yapılandırma gibi işlemler için kullanılabilirdi; ancak zaten yayınlanmış paket sürümlerinin üzerine yazılamıyordu ve şifre/e-posta/MFA değişikliği ya da hesap silme mümkün değildi. API istekleri için MFA etkinleştirilmiş hesaplarda sızan anahtarın push, yank ve sahiplik değişikliği yapması engelleniyordu.
RubyGems ekibi, erişim kayıtlarında kötüye kullanım belirtisi bulamadı ancak bu kayıtların sorunun dokuz yıllık geçmişinin yalnızca küçük bir bölümünü kapsadığını belirtti. Önlem olarak tüm eski (legacy) API anahtarları iptal edildi, etkilenen hesap sahipleri bilgilendirildi ve olaya CVSS 4.0 üzerinden 7.2 (Yüksek) puanı verildi. Geliştiricilerin gem istemcilerini güncellemesi, hesap sahiplik/trusted publisher ayarlarını gözden geçirmesi ve API için MFA'yı etkinleştirmesi öneriliyor.