CVE-2026-78058
Təsvir
Apache bRPC-nin (versiya < 1.18.0) bütün platformalarda HTTP/2 (h2) qəbul yolunda resursların nəzarətsiz istehlakı, uzaqdakı autentifikasiya olunmamış hücumçunun xüsusi hazırlanmış HTTP/2 freymləri göndərməklə serveri sıradan çıxarmasına və ya yaddaşın limitsiz şəkildə artmasına şərait yaradır. Kök Səbəb: Hər bir bRPC server portunda standart olaraq aktiv olan və h2/gRPC klientləri tərəfindən istifadə edilən h2 parseri, qarşı tərəfin bRPC tərəfindən elan edilən, lakin heç vaxt tətbiq edilməyən qəbul limiti qaydalarına əməl edəcəyinə etibar edir: 1. SETTINGS_MAX_CONCURRENT_STREAMS standart olaraq limitsiz təyin edilmişdi və serverdə heç vaxt yoxlanılmırdı; bu, qarşı tərəfə hər bağlantı üzrə limitsiz sayda gözləyən axın (stream) yaratmağa imkan verirdi (~100 dəfə yaddaş artımı). 2. SETTINGS_MAX_HEADER_LIST_SIZE standart olaraq limitsiz təyin edilmişdi və heç vaxt tətbiq edilmirdi; 1 baytlıq HPACK indeksli istinadlar kiçik bir HEADERS freymini ~4000 dəfə böyüdərək limitsiz dekodlaşdırılmış başlıq siyahısına çevirir ("HPACK bomb"), tamamlanmayan HEADERS/CONTINUATION bloku isə yaddaşı limitsiz şəkildə doldurur. 3. İdarəetmə freymi təsdiqləmələri (PING/SETTINGS acks, RST_STREAM, GOAWAY, WINDOW_UPDATE) -socket_max_unwritten_bytes yazma limitini şərtlərsiz şəkildə yan keçirdi, buna görə də TCP oxumalarının saxlanılması ilə birləşdirilmiş PING flood-u bağlantı buferini sənədləşdirilmiş limit olmadan artırırdı. 4. HPACK dinamik cədvəl ölçüsü yeniləməsi elan edilmiş SETTINGS_HEADER_TABLE_SIZE əvəzinə protokolun standart dəyəri (4096) ilə yoxlanılırdı; bu, dinamik cədvəl növbəsi/uçotu problemi ilə birlikdə dekoderin sinxronizasiyasını poza bilər və NULL istinadı ilə nəticələnib sistemin çökməsinə (crash) səbəb ola bilər. Təsirə məruz qalan ssenarilər: Etibarsız şəbəkəyə HTTP/h2/gRPC xidməti göstərən hər hansı bRPC serveri və etibarsız backend-ə qoşulan hər hansı bRPC h2/gRPC klienti. h2 parseri ortaq portda hər hansı Authenticator yoxlamasından əvvəl işə düşür. Həlli yolu: bRPC versiyasını yüksəldin və ya https://github.com/apache/brpc/pull/3474 ünvanındakı yamanı tətbiq edin. Qeyd: Düzəliş tətbiq edildikdən sonra aşağıdakı limitlər standart olaraq tətbiq edilir: - max_concurrent_streams: hər bağlantı üçün 1024 (4294967295 limitsizi bərpa edir). - max_header_list_size: hər axın üçün 1 MiB dekodlaşdırılmış ölçü (4294967295 limitsizi bərpa edir; klientlər üçün -h2_client_max_header_list_size). - h2 idarəetmə freymi təsdiqləmələri -socket_max_unwritten_bytes limitinə əməl edir (-h2_ack_ignore_eovercrowded köhnə davranışı bərpa edir). Bu limitləri aşan sorğular rədd edilir (RST_STREAM(REFUSED_STREAM) və ya bağlantı xətası).
Necə düzəltmək olar
- Apache Software Foundation Apache bRPC1.18.0 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| Apache Software Foundation Apache bRPC | v < 1.18.0 | 1.18.0 |
Versiyanızı yoxlayın
Məhsulu seçin və istifadə etdiyiniz versiyanı yazın; versiyanın təsirlənən aralıqda olub-olmadığını görün.
Attack Surface Management
Domenlərinizə bağlı aktivləri, onlarda işləyən texnologiyaları və məlum zəiflikləri bir siyahıda görün.