Wysoki Odebrany

CVE-2026-104016

opublikowano:
modyfikacja:
Ocena CVSS
7.5
Wysoki · v3.1
wektor: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

>_ Opis

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

ProtobufParser analizuje łańcuch protobuf z przedrostkiem długości i pola bajtów, sprawdzając (_inputPtr + len) <= _inputEnd, a następnie w szybkiej ścieżce wywołując _finishShortText(len). Obydwa używają 32-bitowej arytmetyki liczb całkowitych ze znakiem. Gdy osoba atakująca dostarcza dekodowanie varint o długości bliskiej Integer.MAX_VALUE, _inputPtr + len przekracza wartość ujemną, sprawdzanie granic kończy się pomyślnie, a _finishShortText(len) osiąga TextBuffer.expandCurrentSegment(len), co wykonuje Arrays.copyOf bez ograniczenia i zgłasza OutOfMemoryError: Żądany rozmiar tablicy przekracza limit maszyny wirtualnej.



JVM odrzuca tablice większe niż Integer.MAX_VALUE - 8 przed sprawdzeniem dostępnej sterty, więc strojenie -Xmx nie łagodzi problemu. StreamReadConstraints.maxStringLength i maxDocumentLength nie bramują tej ścieżki: 33-bajtowy ładunek jest znacznie mniejszy od dowolnego limitu długości dokumentu, a sprawdzanie długości ciągu nie jest uruchamiane przed alokacją. Zostało to potwierdzone empirycznie w odniesieniu do artefaktów wysyłki ze skonfigurowanymi parametrami maxStringLength, maxDocumentLength i maxNestingDepth.



Zatwierdzenie zabezpieczające z lutego 2026 r. dodało równoważną ochronę przed przepełnieniem do ścieżek o długości spakowanej tablicy i długości komunikatu, ale pozostawiło strony wywołań o długości łańcucha bez ochrony. Nie są wymagane żadne uprawnienia ani interakcja użytkownika poza możliwością przesłania danych do analizy.

>_ 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