CVE-2026-47321 in MINAИнформация

Сводка

по VulDB • 21.09.2026

Класс CompressionFilter использует ZLib для сжатия (deflate) и распаковки (inflate) отправляемых и получаемых данных. При распаковке входящих данных фильтр не контролирует результирующий размер, создавая буфер независимо от фактического размера.

Некоторые сжатые данные могут иметь коэффициент сжатия более 1000, что приводит к исчерпанию памяти приложения, поскольку мы не контролируем размер после декомпрессии (deflated size).

Исправление добавляет такой контроль, позволяя разработчику приложений указать фиксированный лимит размера; при его достижении выбрасывается исключение. Также пользователю предоставляется возможность задать максимальный коэффициент сжатия, который не должен превышаться, защищая приложение от ситуаций, когда небольшие файлы после распаковки превращаются в гигантские. При этом предусмотрен «порог допуска» (grace limit) для результирующего размера (1 МБ), чтобы избежать ложных срабатываний (например, очень маленький файл может иметь высокий коэффициент сжатия, но при этом его размер после распаковки остается приемлемым, например, несколько тысяч байт).

Для приложений, использующих эту функцию, настоятельно рекомендуется создавать экземпляр CompressionFilter и передавать максимальный лимит в качестве четвертого параметра конструктора `maxDecompressedSize`:

```java public CompressionFilter(final boolean compressInbound, final boolean compressOutbound, final int compressionLevel, final int maxDecompressedSize) ```

Опционально можно также предоставить пятый параметр `maxDecompressRatio` и шестой параметр `decompressRatioMinSize`, чтобы разрешить прием небольших файлов с высоким коэффициентом сжатия.

Вот дополнительные конструкторы:

```java public CompressionFilter(final boolean compressInbound, final boolean compressOutbound, final int compressionLevel, final int maxDecompressedSize, final long maxDecompressRatio, final long decompressRatioMinSize) ```

Также следует отметить, что добавлен fluent API (потоковый интерфейс), чтобы избавить пользователей от необходимости вызывать конструктор с таким большим количеством параметров:

```java CompressionFilter compressionFilter = new CompressionFilter() .setCompressionLevel(Zlib.COMPRESSION_MAX) .setMaxDecompressedSize(1_000_000) .setMaxDecompressRatio(100) .setDecompressRatioMinSize(100_000); ```

Приложениям, использующим Apache MINA, рекомендуется обновиться и настроить экземпляр CompressionFilter.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

Ответственный

Apache

Резервировать

19.05.2026

Раскрытие

21.09.2026

Модерация

принято

Вход

VDB-408078

EPSS

0.00000

KEV

Нет

Деятельности

Высокий

Источники

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!