CVE-2026-47321
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
Klasa CompressionFilter używa ZLib do deflacji i zawyżania danych wysyłanych i odbieranych. Kiedy zawyżamy przychodzące dane, filtr nie kontroluje wynikowego rozmiaru i niezależnie od wszystkiego tworzy bufor.
Niektóre skompresowane dane mogą mieć stopień kompresji większy niż 1000, co prowadzi do wyczerpania pamięci aplikacji, ponieważ nie kontrolujemy zmniejszonego rozmiaru.
Poprawka dodaje taką kontrolę, umożliwiając twórcy aplikacji zapewnienie stałego limitu rozmiaru, który po osiągnięciu zgłasza wyjątek. Pozwala także użytkownikowi zapewnić współczynnik kompresji, którego nie należy przekraczać, chroni aplikację przed małymi, nadmuchanymi plikami, które rozrastają się do gigantycznych plików, ale z ograniczeniem rozmiaru wynikowego (1 Mb), aby uniknąć fałszywych alarmów (jak bardzo mały plik rozdęty z wysokim współczynnikiem, ale skutkujący akceptowalnym rozmiarem, na przykład kilkoma tysiącami bajtów)
W przypadku aplikacji korzystających z tej funkcji zdecydowanie zaleca się utworzenie elementu CompressionFilter i przekazanie maksymalnego limitu jako czwartego parametru konstruktora, maxDecompressedSize:
public CompressionFilter(końcowa wartość logiczna compressInbound, końcowa wartość logiczna compressOutbound, final int kompresjiLevel, final int maxDecompressedSize) Opcjonalnie można również podać piąty parametr maxDecompressRatio i szósty parametr decompressRatioMinSize, aby umożliwić akceptowanie małych, zawyżonych plików o wysokim współczynniku kompresji.
Oto dodatkowy konstruktor:
public CompressionFilter(końcowa kompresja logiczna przychodząca, końcowa kompresja logiczna wychodząca,
końcowy int poziom kompresji, końcowy int maxDecompressedSize,
końcowy długi maxDecompressRatio, końcowy długi współczynnik dekompresjiMinSize)
Należy również pamiętać, że dodano płynny interfejs API, aby oszczędzić użytkownikom bólu związanego z wywoływaniem konstruktora z tak dużą liczbą parametrów:
CompressionFilter kompresjaFilter = nowy CompressionFilter()
.setCompressionLevel(Zlib.COMPRESSION_MAX)
.setMaxDecompressedSize(1_000_000)
.setMaxDecompressRatio(100).
.setDecompressRatioMinSize(100_000);
Zaleca się, aby aplikacje korzystające z Apache MINA zaktualizowały i skonfigurowały instancję CompressionFilter.
>_ 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