Siber Güvenlik

Kimi K3 Ajanları Redis'te Sıfırıncı Gün Açıkları Buldu ve RCE İstismarı Geliştirdi

Kimi K3 Ajanları Redis'te Sıfırıncı Gün Açıkları Buldu ve RCE İstismarı Geliştirdi
Malta'da dil eğitimi alırken çalışma hakkınız da var, biliyor muydunuz? Detaylar →

Redis, 23 Temmuz'da yedi güvenlik güncellemesi yayınladı. Bunun nedeni, araştırmacıların Redis 6.2.22, 7.4.9, 8.6.4 ve 8.8.0 sürümleri için kimlik doğrulaması gerektiren RCE (Uzaktan Kod Çalıştırma) istismarları yayınlamasıydı.

Dört istismar zincirinin tamamı RESTORE komutunu kullanıyor. Streams zincirleri ayrıca EVAL ve XGROUP komutlarını gerektiriyor; 8.8.0 zinciri ise EVAL ve birlikte gelen RedisBloom modülünü kullanıyor. Redis, temel bellek hatalarının uzaktan kod çalıştırmaya yol açabileceğini belirtiyor.

Redis 6.2.23, 7.2.15 ve 7.4.10 sürümleri Streams'teki paylaşılan NACK kullanım-sonrası-serbest bırakma (use-after-free) hatasını düzeltiyor. Redis 8.2.8, 8.4.5 ve 8.6.5 sürümleri hem Streams sorununu hem de RedisBloom ve TDigest sınır dışı yazma (out-of-bounds write) hatalarını gideriyor. Redis 8.8.1 ise RedisBloom ve TDigest yükleyicilerindeki sorunları çözerken, Streams koruması zaten Redis 8.8.0'da mevcuttu.

İki istismar hedefi olan Redis 6.2.22 ve 7.4.9, Redis'in Mayıs ayında kullanıcılara yüklemelerini söylediği güvenlik güncellemeleriydi. Ancak bu sürümler paylaşılan NACK sahiplik korumasını içermiyordu.

Kullanılan sürüm için düzeltilmiş sürüme yükseltme yapılması öneriliyor. Bu yapılana kadar, RESTORE komutunu kesinlikle ihtiyacı olmayan hesaplardan kaldırın ve güvenilmeyen ağ erişimini engelleyin. RESTORE'u kısıtlamak, açığa çıkan her iki yolu da kapatıyor.

Redis'in 23 Temmuz sürüm notlarında ve incelenen genel PoC depolarında, 24 Temmuz 2026 itibarıyla bu açıkların aktif olarak kullanıldığına dair bir rapor bulunmuyor.

RESTORE Üzerinden İki Yol

Redis Streams yolu, paylaşılan sahiplik hatası. Bozuk bir RDB nesnesi, iki tüketicinin aynı bekleyen giriş kaydını işaret etmesine neden olabiliyor. Her iki tüketici de kaldırıldığında aynı nesne iki kez serbest bırakılıyor.

Yayınlanan betik, ortaya çıkan bellek bozulmasını rastgele bellek erişimine dönüştürmek ve sonuçta system() fonksiyonunu çağırmak için tasarlanmış.

RedisBloom yolu ise TDigest RDB yükleyicisinde bir sınır dışı yazma hatası. Yükleyici, bir serileştirilmiş değerden bellek ayırıyor ancak ne kadar veri yükleneceğine karar verirken ayrı bir saldırgan tarafından kontrol edilen kapasite alanına güveniyor.

Redis 8.8.0 betiği, bu uyumsuzluğu okuma ve yazma temel işlemlerine dönüştürmek, Redis ve libc adreslerini sızdırmak ve system() fonksiyonunu çağırmak için tasarlanmış.

Streams Paylaşılan NACK Zinciri

İlk yol Redis Streams'te bulunuyor. Bozuk bir RDB nesnesi, iki tüketicinin aynı bekleyen giriş kaydını işaret etmesine neden olabiliyor. Bu kayıt dahili olarak bir streamNACK ile temsil ediliyor. İlk tüketiciyi kaldırmak nesneyi serbest bırakıyor ve ikinci tüketiciyi sarkan bir işaretçiyle bırakıyor. Betikler daha sonra ikinci tüketiciyi de kaldırıyor. Tek bir bellek bloğu, iki kez serbest bırakılıyor.

Uzun dönem Malta'da, üniversite destekli okullarda dilini geliştir. Kayıt bilgisi →

Kaynak: The Hacker News