CVE-2021-21294
Açıklama
Http4s (http4s-blaze-server), HTTP servisleri için minimal ve idiyomatik bir Scala arayüzüdür. 0.21.17, 0.22.0-M2 ve 1.0.0-M14 versiyonlarından önceki Http4s sürümleri, hizmet reddine (denial-of-service) yol açabilen bir güvenlik açığına sahiptir. http4s-blaze-server'ın temelini oluşturan Blaze-core kütüphanesi, seçici havuzunda sınırsız bağlantı kabul etmektedir. Gelen bağlantılar hala kabul edilip sınırsız bir kuyruğa eklendiği için bu durum, mevcut istek yükünü karşılayamayan servislerdeki performans düşüşünün artmasına neden olur. Her bağlantı, kıt bir işletim sistemi kaynağı olan soket tutamacını tahsis eder. Bu durum ayrıca, başarısız bağlantıları tespit ederek çalışan üst düzey devre kesicileri de yanıltabilir. http4s, açık bağlantıları sınırlamak için genel bir "MaxActiveRequests" ara yazılım mekanizması sunar ancak bu mekanizma, bağlantı kabul edildikten ve soket açıldıktan sonra Blaze kabul döngüsü içinde uygulanır. Bu nedenle sınır, yalnızca aynı anda işlenebilecek bağlantı sayısını engeller; açık tutulabilecek bağlantı sayısını değil. 0.21.17, 0.22.0-M2 ve 1.0.0-M14 sürümlerinde, `BlazeServerBuilder`'a varsayılan değeri 1024 olan yeni bir "maxConnections" özelliği eklenmiştir. Değerin negatif bir sayıya ayarlanması sınırsız davranışı geri getirir ancak bu kesinlikle önerilmez. NIO2 arka ucu `maxConnections` özelliğine uymaz. Bunun kullanımı http4s-0.21 sürümünde kullanımdan kaldırılmış ve http4s-0.22 ile tamamen kaldırılmıştır. Referans verilen GHSA-xhv5-w9c5-2r2w numaralı GitHub Advisory'de birkaç olası geçici çözüm açıklanmıştır.
Nasıl düzeltilir
- typelevel http4s0.21.17 ya da sonraki bir sürüm
- org.http4s:http4s-blaze-server_2.120.21.17 ya da sonraki bir sürüm
- org.http4s:http4s-blaze-server_2.130.21.17 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| typelevel http4s | v < 0.21.17 | 0.21.17 |
| org.http4s:http4s-blaze-server_2.12Maven | v < 0.21.17 | 0.21.17 |
| org.http4s:http4s-blaze-server_2.13Maven | v < 0.21.17 | 0.21.17 |
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.