Redis’te Bulunan Kritik Güvenlik Açığı
Son dönemde Redis veritabanlarında bulunan kritik bir güvenlik açığı, yetkilendirilmiş kullanıcıların sunucu üzerinde rastgele işletim sistemi komutları çalıştırmasına olanak tanıyor. Bu açıklığın keşfi, büyük kod tabanlarında hata avlayan otonom bir yapay zeka aracı tarafından gerçekleştirildi ve ciddi bir tehlike oluşturdu.
Açığın Detayları
Redis, CVE-2026-23479 kodu ile takip edilen bu güvenlik açığını, 7.2.0 sürümünde tanıttı ve 5 Mayıs 2023 tarihindeki güncellemelerle düzeltildi. NVD, bu açığı CVSS 3.1 üzerinden 8.8 ile değerlendirirken, Redis CVSS 4.0 üzerinden 7.7 olarak sınıflandırdı. Bu güvenlik açığı, iki yıl boyunca fark edilmeden kalmıştı ve Team Xint Code tarafından rapor edilmiştir.
Etkilenen Sistemler
Redis, çoğu bulut ortamında var olan yaygın bir veritabanıdır. Yapılan analizler, birçok Redis örneğinin şifre olmadan çalıştığını göstermektedir. Saldırgan, yalnızca yetkilendirilmiş bir oturumu kullanabilse de, varsayılan dağıtımda, varsayılan kullanıcı tüm gerekli yetkilere sahiptir.
Saldırı Nasıl Çalışıyor?
Açık, unblockClientOnKey() fonksiyonunda bulunmaktadır ve bu fonksiyon, bir tuş olayı bloklanmış bir komutu uyandırdığında tetiklenir. Aşağıdaki süreçler gerçekleşir:
- İlk olarak, bir Lua skripti kullanılarak bir bellek işaretçisi sızdırılır.
- İkincisi, saldırgan istemci bellek sınırlarını ayarlar ve şişirilmiş bir istemciyi bir akışa yerleştirir, ardından sınırları düşürerek istemciyi uyandırır. Redis, bloklu istemciyi çağrı ortasında serbest bırakırken, bir pipelined SET, hemen sahte istemci yapısı ile serbest bırakılan alanı tekrar alır.
- Üçüncüsü, Redis’in bellek hesaplaması, saldırgan kontrolündeki alanlar kullanarak bir dış sınır aşımı ile gerçekleştirir ve bu, sistem() fonksiyonunu yeniden gösterecek şekilde strcasecmp() fonksiyonunu yönlendirir.
Çözüm ve Korunma
Redis, etkilenen sürümler için güncellemeler yayınladı. Tüm kullanıcıların aşağıdaki sürümlere yükseltmeleri önerilmektedir:
| Dal | Etki Alanı | Düzeltildiği Sürüm |
|---|---|---|
| 7.2.x | 7.2.0 – 7.2.13 | 7.2.14 |
| 7.4.x | 7.4.0 – 7.4.8 | 7.4.9 |
| 8.2.x | 8.2.0 – 8.2.5 | 8.2.6 |
| 8.4.x | 8.4.0 – 8.4.2 | 8.4.3 |
| 8.6.x | 8.6.0 – 8.6.2 | 8.6.3 |
Uygulamalarınızı ve sistemlerinizi güncellemeyi derhal gerçekleştirin. Eğer güncelleme yapamıyorsanız, Redis’i genel internetten uzak ve TLS altında tutun, ACL’leri sıkılaştırarak hiçbir rolün @admin, CONFIG ve @scripting bir arada bulundurmasına izin vermeyin. Ayrıca, Lua kullanmıyorsanız @scripting yetkisini devre dışı bırakmanız, ilk aşama sızıntısını ortadan kaldıracaktır.
Açık ağda bulunan örneklere, paylaşılan uygulama kimlik bilgilerine ve CONFIG, scripting ile akış erişimini birleştiren herhangi bir role öncelik verin. Paylaşılan tüm Redis kimlik bilgilerini yenileyin.
Redis, kendi veya müşteri ortamlarında herhangi bir istismar raporu aldıklarını belirtmemiştir, ancak açıktan haberdar olan herkesin risk minimize etmesi için acil önlemler alması gerekiyor.


