Odebrany

CVE-2026-111108

opublikowano:
modyfikacja:
Ocena CVSS
n/a
Brak oceny

>_ Opis

Tłumaczenie automatyczne – może zawierać nieścisłości.

Czytniki protokołów generowane przez kod Apache Kafka wstępnie ustalają rozmiar kolekcji tablicy na podstawie liczby elementów zadeklarowanej przez nadawcę. Liczba ta jest sprawdzana tylko pod kątem liczby bajtów pozostałych w buforze żądań, co zakłada, że ​​na element przypada około jednego bajtu. ponieważ większość elementów potrzebuje kilku bajtów, żądanie może zadeklarować znacznie więcej elementów, niż mieści się w buforze, i mimo to przejść. W przypadku tablicy z kluczem czytnik następnie przydziela ImplicitLinkedHashCollection pojemność (2 * liczba +1), więc żądanie kilkudziesięciu megabajtów może wymusić kilkukrotnie większą alokację sterty przed odczytaniem dowolnego elementu. Wzorzec jest emitowany do każdego wygenerowanego czytnika, więc ma wpływ na wszystkie typy API Kafki z polem tablicowym. 


Wpływ:

Analizowanie żądań odbywa się przed jakąkolwiek kontrolą autoryzacji. W przypadku odbiornika, który nie wymaga uwierzytelniania (na przykład ZWYKŁEGO TEKSTU), nieuwierzytelniona osoba atakująca może wysłać kilka jednoczesnych żądań, z których każde deklaruje bardzo duży=

długość tablicy i przydzielają wielokrotność rozmiaru przewodu w stercie brokera, co powoduje zawieszenie brokera z powodu błędu OutOfMemoryError. Reporter zademonstrował trzy równoczesne połączenia ProduceRequest (v3) o wielkości ~90 MB, wyczerpujące stertę o wielkości 1 GB (wzmocnienie ~8x). W przypadku odbiorników wymagających uwierzytelnienia osoba atakująca potrzebuje prawidłowych danych uwierzytelniających, ale bez konkretnej listy ACL, ponieważ analiza poprzedza autoryzację.


Łagodzenie:

Uaktualnij do Apache Kafka 4.2.2, 4.3.2 lub 4.4.0. Do tego czasu zmniejszenie wartości Socket.request.max.bytes i ograniczenie dostępu do sieci dla słuchaczy brokerów zmniejsza ryzyko, ale go nie usuwa.


Rozdzielczość:

Od Apache Kafka 4.2.2, 4.3.2 i 4.4.0: wygenerowane czytniki ograniczają wstępną alokację początkowej tablicy do MessageUtil.MAX_PREALLOCATED_ARRAY_CAPACITY (1000) i powiększają ją na żądanie, a następnie odrzucają zadeklarowaną długość tablicy powyżej MessageUtil.MAX_ARRAY_LENGTH (1 000 000).

>_ Słabości (CWE)

>_ Referencje

Dane podatności pochodzą z oficjalnych źródeł (CVE® List / NVD). Opisy po polsku są tłumaczone automatycznie i mogą zawierać nieścisłości – na stronie rekordu można wyświetlić wersję angielską.

This product uses the NVD API but is not endorsed or certified by the NVD.

Copyright © 1999–2026, The MITRE Corporation. CVE is a registered trademark and the CVE logo is a registered trademark of The MITRE Corporation.

CVE Usage: MITRE hereby grants you a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Common Vulnerabilities and Exposures (CVE®). Any copy you make for such purposes is authorized provided that you reproduce MITRE's copyright designation and this license in any such copy. ALL DOCUMENTS AND THE INFORMATION CONTAINED THEREIN PROVIDED BY MITRE ARE PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND.

NVD Terms of Use / CVE® Terms of Use / nvd.nist.gov / cve.org