CVE-2026-58225
Açıklama
elixir-ecto postgrex bileşenindeki bir SQL Injection zafiyeti, bir LISTEN kanal adını etkileyebilen bir saldırganın yeniden bağlanma tekrar sorgusuna SQL enjekte etmesine izin vererek bildirim bağlantısının hizmet reddine (DoS) neden olmasına yol açar. Postgrex.Notifications, kanal adlarını quote_channel/1 ile temizler; bu işlem çift tırnakları ikiye katlayarak adın çift tırnaklı bir tanımlayıcı içinde güvenli olmasını sağlar. Bu durum, tek ifadeli LISTEN ve UNLISTEN yollarını korur. Ancak her (yeniden) bağlantıda, handle_connect/1 tüm kayıtlı kanalları, LISTEN ifadelerini birbirine ekleyip onları dolar işaretli anonim bir kod bloğu (DO $$BEGIN ... END$$) içine sararak aynı anda tekrar oynatır. quote_channel/1, bu bloğu açan ve kapatan $$ dolar işareti sınırlayıcısını kaçırmaz. listen/3 korumaları yalnızca boş baytları ve 63 bayttan uzun isimleri reddettiğinden, $$ içeren bir kanal adı doğrulamadan değişmeden geçer. Böyle bir ad yerleştirildiğinde, içerdiği $$ dıştaki dolar işaretli diziyi vaktinden önce sonlandırır ve PostgreSQL geri kalan kısmı ek üst düzey ifadeler olarak ayrıştırır. handle_connect/1 her (yeniden) bağlantıda çalıştığı için, hatalı tekrar sorgusu her seferinde reddedilir ve bildirim bağlantısı aboneliklerini asla yeniden kuramaz; böylece o bağlantıyı paylaşan her kanal için bildirimler sessizce düşürülür. Bir uygulama, güvenilmeyen girdiyi (örneğin bir kiracı veya kullanıcı tanımlayıcısı) Postgrex.Notifications.listen/3 fonksiyonuna kanal adı olarak geçtiğinde etkilenir. Çift tırnağın tekrarlanması tamamen geçerli bir enjekte edilmiş ifade oluşturulmasını engellediği için rastgele SQL yürütülmesi mümkün değildir, ancak bozulmuş sorgu paylaşılan bildirim bağlantısını tüm kiracılar için güvenilir şekilde kopararak hizmet reddine yol açar. Bu sorun postgrex'in 0.16.0 sürümünden 0.22.3 öncesine kadar olan sürümlerini etkilemektedir.
Nasıl düzeltilir
- elixir-ecto postgrex0.22.3, 795c6062f62c4394272ff4b89170688857b4f841 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| elixir-ecto postgrex | 0.16.0 ≤ v < 0.22.3, 266b530faf9bde094e31e0e4ab851f933fadc0f5 ≤ v < 795c6062f62c4394272ff4b89170688857b4f841 | 0.22.3, 795c6062f62c4394272ff4b89170688857b4f841 |
Sürümünüzü kontrol edin
Ürünü seçin ve kullandığınız sürümü yazın; sürümün etkilenen aralıkta olup olmadığını görün.
Attack Surface Management
Alan adlarınıza bağlı varlıkları, bu varlıklarda çalışan teknolojileri ve bilinen zafiyetleri tek listede görün.