- Yama var
- Son 7 gün
- CWE-476
CVE-2026-90484
Apache bRPC MySQL yanıt ayrıştırıcısında null işaretçi erişimi, istemci çökmesine yol açıyor
- Yayımlandı
- Güncellendi
- 26 Eki 2026
- Açık yaşı
- 7 gün
- Kaydı açan
- apache
ÖzetTürkçe
Apache bRPC'deki MySQL istemci yanıt ayrıştırıcısı, sunucu tarafı eş sıfır yük uzunluklu bir yanıt paketi gönderdiğinde null işaretçiyi dereference eder. Bildirilen yük uzunluğu sıfır olan bir yanıt paketi çerçeve uzunluk kontrolü (is_full_package) tarafından kabul edilir; ardından ayrıştırıcı, null döndüren sınırsız 5 baytlık bir fetch ile yanıt tür baytını okumaya çalışır ve type = p[4] ifadesi null işaretçiyi dereference ederek istemci sürecini çöktürür.
Kök neden: brpc::policy::MysqlReply::ConsumePartialIOBuf içinde, arabellekteki veri yalnızca sıfır uzunluklu bir paketin 4 baytlık başlığını içerdiğinde buf.fetch(header, 5) nullptr döndürür. Kod, bunun ardından null veya sıfır uzunluk kontrolü yapmadan p[4] (ve hızlı kimlik doğrulama yolunda p2[4]) değerlerini okur.
Etkilenen senaryolar: Kötü amaçlı veya ele geçirilmiş bir MySQL sunucusuna (ya da bir MITM saldırganına) bağlanan bir brpc MySQL istemcisi, sıfır uzunluklu bir sunucu yanıt paketi ile çökertilebilir; bu da istemcinin hizmet dışı bırakılmasıyla sonuçlanır.
Düzeltme: Düzeltme, sıfır uzunluklu yanıt paketlerini hem ilk yanıt türü belirlemesinde hem de hızlı kimlik doğrulama işaretçisinden sonra, tür baytı okunmadan önce reddeder (PARSE_ERROR_ABSOLUTELY_WRONG döndürerek). Apache bRPC sürümünü 1.18.0'a yükseltin veya PR yamasını uygulayın.
Kaynaktaki açıklama (İngilizce)
The MySQL client response parser in Apache bRPC dereferences a null pointer when the server peer sends a zero-payload-length response packet. A response packet whose declared payload length is zero is accepted by the frame-length check (is_full_package), after which the parser reads the response type byte via an unbounded 5-byte fetch that returns nullptr, and type = p[4] dereferences it, crashing the client process.
Root Cause: In brpc::policy::MysqlReply::ConsumePartialIOBuf, buf.fetch(header, 5) returns nullptr when the buffered data only holds the 4-byte header of a zero-length packet, then the code reads p[4] (and, in the fast-auth path, p2[4]) without checking for a null or zero-length packet.
Affected Scenarios: A brpc MySQL client connecting to a malicious or compromised MySQL server (or a MITM) can be crashed by a zero-length server response packet, resulting in denial of service of the client.
Fix: The fix rejects zero-length response packets (returning PARSE_ERROR_ABSOLUTELY_WRONG) both for the initial response type determination and after a fast-auth marker, before reading the type byte. Upgrade to the Apache bRPC version 1.18.0 or apply the PR patch at https://github.com/apache/brpc/pull/3536.
Bu açığın açıklamasını Türkçeye çevirdik. Adım adım çözüm önerilerini kritik ve yeni açıklar için hazırlıyoruz; düzeltilmiş sürüm aşağıdaki tabloda, ayrıntılar üreticinin duyurusunda.
Etkilenen sürümler1 yazılım
| Yazılım | Etkilenen | Düzeltildiği sürüm |
|---|---|---|
| Apache Software Foundation Apache bRPC | < 1.18.0 | 1.18.0 |
Kaynaklar4 kaynak
Kayıt geçmişi
- Yayımlandı
İlgili açıklar
Türkçe metin, resmi kayıtlardaki bilgilerle yapay zekâ yardımıyla yazıldı ve yayından önce otomatik kontrollerden geçti. Bir değişikliği uygulamadan önce üreticinin duyurusuna mutlaka bakın.