CVE-2026-47321 in MINAinformazioni

Riassunto

di VulDB • 21/09/2026

La classe CompressionFilter utilizza ZLib per decomprimere (inflate) e comprimere (deflate) i dati inviati e ricevuti. Quando si decomprime il dato in entrata, il filtro non controlla la dimensione risultante e crea un buffer indipendentemente dalla situazione.

Alcuni dati compressi possono presentare un rapporto di compressione superiore a 1000, portando all'esaurimento della memoria dell'applicazione, poiché non viene controllata la dimensione decompressa (deflated).

La correzione introduce tale controllo consentendo allo sviluppatore dell'applicazione di fornire un limite dimensionale fisso; quando questo valore viene raggiunto, viene generata un'eccezione. Consente inoltre all'utente di specificare un rapporto di compressione massimo che non deve essere superato, proteggendo l'applicazione da piccoli file decompressi (inflated) che si espandono in file enormi, ma con un limite dimensionale finale ("grace limit") pari a 1 MB per evitare falsi positivi (ad esempio, un file molto piccolo che viene compresso con un alto rapporto ma risulta comunque di dimensioni accettabili, come poche migliaia di byte).

Per le applicazioni che utilizzano questa funzionalità, si consiglia vivamente di creare l'istanza di CompressionFilter e di passare il limite massimo come quarto parametro del costruttore, `maxDecompressedSize`:

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

Opzionalmente è possibile fornire un quinto parametro `maxDecompressRatio` e un sesto parametro `decompressRatioMinSize` per consentire l'accettazione di piccoli file decompressi con un alto rapporto di compressione.

Ecco il costruttore aggiuntivo:

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

Si noti inoltre che è stata aggiunta un'API fluent per evitare agli utenti la scomodità di chiamare un costruttore con così tanti parametri:

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

Si consiglia alle applicazioni che utilizzano Apache MINA di effettuare l'upgrade e configurare la propria istanza CompressionFilter.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

Responsabile

Apache

Prenotare

19/05/2026

Divulgazione

21/09/2026

Moderazione

accettato

CPE

pronto

EPSS

0.00000

KEV

no

Attività

medio

Fonti

Want to stay up to date on a daily basis?

Enable the mail alert feature now!