CVE-2023-33953
Açıklama
gRPC, istisnai durumlarda istemciler ve sunucular arasında istenmeyen bağlantı kesintilerine yol açabilecek hpack tablo muhasebe hatalarına izin veren bir güvenlik açığı içermektedir. Aşağıdaki DOS saldırılarına olanak tanıyan üç vektör bulunmuştur: - HPACK ayrıştırıcısında sınırsız bellek tamponlama - HPACK ayrıştırıcısında sınırsız CPU tüketimi Sınırsız CPU tüketimi, ayrıştırıcıda her giriş bloğu başına gerçekleşen bir kopyalamadan kaynaklanmaktadır ve bellek kopyalama hatası nedeniyle bu durum sınırsız olabildiğinden, n değerinin istemci tarafından seçildiği O(n^2) karmaşıklığında bir ayrıştırma döngüsü ile sonuçlanmaktadır. Sınırsız bellek tamponlama hataları: - Üstbilgi boyut sınırı kontrolü, dize okuma kodunun arkasındaydı; bu nedenle, 8 veya 16kb'dan daha uzun olduğu gerekçesiyle reddetmeden önce 4 gigabayta kadar olan bir dizeyi önbelleğe almamız gerekiyordu. - HPACK varint'lerin, bir tam sayının başına sonsuz sayıda 0 eklenebildiği bir kodlama özelliği vardır. gRPC'nin hpack ayrıştırıcısının, bir ayrıştırmayı tamamlamadan önce bunların tümünü okuması gerekiyordu. - gRPC'nin meta veri taşma kontrolü çerçeve (frame) başına gerçekleştiriliyordu, bu nedenle aşağıdaki çerçeve dizisi sonsuz tamponlamaya neden olabiliyordu: HEADERS: a: 1 içeriyor, CONTINUATION: a: 2 içeriyor, CONTINUATION: a: 3 içeriyor vb...
Nasıl düzeltilir
- grpc grpc1.53.2, 1.54.3, 1.55.2, 1.56.2 ya da sonraki bir sürüm
- grpcio1.53.2, 1.54.3, 1.55.2, 1.56.2 ya da sonraki bir sürüm
- grpc1.53.2, 1.54.3, 1.55.2, 1.56.2 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| grpc grpc | v < 1.53.2, 1.54.0 ≤ v < 1.54.3, 1.55.0 ≤ v < 1.55.2, 1.56.0 ≤ v < 1.56.2 | 1.53.2, 1.54.3, 1.55.2, 1.56.2 |
| grpcioPyPI | v < 1.53.2, 1.54.0 ≤ v < 1.54.3, 1.55.0 ≤ v < 1.55.2, 1.56.0 ≤ v < 1.56.2 | 1.53.2, 1.54.3, 1.55.2, 1.56.2 |
| grpcRubyGems | v < 1.53.2, 1.54.0 ≤ v < 1.54.3, 1.55.0 ≤ v < 1.55.2, 1.56.0 ≤ v < 1.56.2 | 1.53.2, 1.54.3, 1.55.2, 1.56.2 |
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.