{"id":"CVE-2026-47321","aliases":["DEBIAN-CVE-2026-47321","EUVD-2026-83858","GHSA-3c8x-fp36-75xv","RHLW-2026-2cb9a31c02a7f38b","UBUNTU-CVE-2026-47321"],"status":"published","title":"Apache MINA: Unbounded Decompression Amplification DoS in Zlib.inflate","description":"The CompressionFilter class uses ZLib to deflate and inflate data sent and received. When we inflate incoming data, the filter does not control the resulting size, and create a buffer no matter what.\n\nSome compressed data may have a compression ration greater than 1 thousand, leading to an exhaustion of the application memory, as we don't control the deflated size.\n\n\n\n\nThe fix adds such a control by allowing the application developer to provide a fixed size limit, which when reached throws an exception. It also allows the user to provide a compression ratio that should not be exceeded, protected the application from small inflated files that inflate in gigantic files, but with a grace limit for the resulting size (1Mb) to avoid false positive (like a very small file inflating with a high ratio, but resulting with a acceptable size, like a few thousands bytes)\n\n\n\n\nFor application using this feature, it is highly recommended to create the CompressionFilter and to pass the maximum limit as a forth constructor parameter, maxDecompressedSize:\n\n\n\n\npublic CompressionFilter(final boolean compressInbound, final boolean compressOutbound, final int compressionLevel, final int maxDecompressedSize)Optionally one can also provide a maxDecompressRatio fifth parameter, and a decompressRatioMinSize sixth parameter to allow small inflated files with a high compression ratio to still be accepted.\n\n\n\n\nHere are the additional constructor:\n\n\n\n\n\n\npublic CompressionFilter(final boolean compressInbound, final boolean compressOutbound,\n\n\n\n            final int compressionLevel, final int maxDecompressedSize,\n\n\n\n            final long maxDecompressRatio, final long decompressRatioMinSize)\n\n\n\n\n\n\n\n\nAlso note that a fluent API has been added to spare the users the pain to call a constructor with that many parameters:\n\n\n\n\n\n\n CompressionFilter compressionFilter = new CompressionFilter()\n\n                                                .setCompressionLevel(Zlib.COMPRESSION_MAX)\n\n                                                .setMaxDecompressedSize(1_000_000)\n\n                                                .setMaxDecompressRatio(100).\n\n                                                .setDecompressRatioMinSize(100_000); \n\n\n\n\n\n\n\n\n\nApplications using Apache MINA are advised to upgrade and configure their CompressionFilter instance.","severity":{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-08","score":0.00488,"percentile":0.42273,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-409","CWE-789"],"published":"2026-09-21T07:43:24Z","modified":"2026-10-27T08:45:03Z","fixes":[{"ecosystem":"Debian:14","package":"mina2","fixed_in":["2.2.9-1"],"sources":["osv"]},{"ecosystem":"Red Hat Lightwell:Maven","package":"org.apache.mina:mina-filter-compression","fixed_in":["2.2.5.rhlw-00008"],"sources":["osv"]}],"affected":[{"source":"osv","ecosystem":"Debian:12","package":"mina","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.1.7.dfsg-13","1.1.7.dfsg-14"]},{"source":"osv","ecosystem":"Debian:12","package":"mina2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.2.1-3","2.2.1-4","2.2.9-1"]},{"source":"osv","ecosystem":"Debian:13","package":"mina2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.2.1-4","2.2.9-1"]},{"source":"osv","ecosystem":"Debian:14","package":"mina2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.2.9-1"}]}],"versions":["2.2.1-4"]},{"source":"osv","ecosystem":"Red Hat Lightwell:Maven","package":"org.apache.mina:mina-filter-compression","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.2.5.rhlw-00008"}]}],"versions":["1.0.0","1.0.1","1.0.10","1.0.2","1.0.3","1.0.4","1.0.5","1.0.6","1.0.7","1.0.8","1.0.9","1.1.0","1.1.1","1.1.2","1.1.3","1.1.4","1.1.5","1.1.6","1.1.7","2.0.0","2.0.0-M1","2.0.0-M2","2.0.0-M3","2.0.0-M4","2.0.0-M5","2.0.0-M6","2.0.0-RC1","2.0.1","2.0.10","2.0.11","2.0.12","2.0.13","2.0.14","2.0.15","2.0.16","2.0.17","2.0.18","2.0.19","2.0.2","2.0.20","2.0.21","2.0.22","2.0.23","2.0.24","2.0.25","2.0.26","2.0.27","2.0.28","2.0.29","2.0.3","2.0.30","2.0.31","2.0.4","2.0.5","2.0.6","2.0.7","2.0.8","2.0.9","2.1.0","2.1.1","2.1.10","2.1.11","2.1.12","2.1.13","2.1.14","2.1.15","2.1.2","2.1.3","2.1.4","2.1.5","2.1.6","2.1.7","2.1.8","2.1.9","2.2.0","2.2.1","2.2.2","2.2.3","2.2.4","2.2.5"]},{"source":"osv","ecosystem":"Ubuntu:16.04:LTS","package":"mina","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.1.7.dfsg-11"]},{"source":"osv","ecosystem":"Ubuntu:16.04:LTS","package":"mina2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.0.7+dfsg-2","2.0.9-1","2.0.9-2"]},{"source":"osv","ecosystem":"Ubuntu:18.04:LTS","package":"mina","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.1.7.dfsg-11","1.1.7.dfsg-12"]},{"source":"osv","ecosystem":"Ubuntu:18.04:LTS","package":"mina2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.0.16-2"]},{"source":"osv","ecosystem":"Ubuntu:20.04:LTS","package":"mina","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.1.7.dfsg-13"]},{"source":"osv","ecosystem":"Ubuntu:20.04:LTS","package":"mina2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.0.19-2"]},{"source":"osv","ecosystem":"Ubuntu:22.04:LTS","package":"mina","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.1.7.dfsg-13"]},{"source":"osv","ecosystem":"Ubuntu:Pro:22.04:LTS","package":"mina2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.1.4-2","2.1.5-1","2.1.5-1ubuntu0.1~esm1"]},{"source":"osv","ecosystem":"Ubuntu:24.04:LTS","package":"mina","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.1.7.dfsg-13","1.1.7.dfsg-13ubuntu1"]},{"source":"osv","ecosystem":"Ubuntu:Pro:24.04:LTS","package":"mina2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.2.1-3","2.2.1-3ubuntu0.1~esm1"]},{"source":"osv","ecosystem":"Ubuntu:25.10","package":"mina2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.2.1-3","2.2.1-4"]},{"source":"osv","ecosystem":"Ubuntu:26.10","package":"mina2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.2.1-4","2.2.1-4ubuntu1","2.2.9-1"]},{"source":"osv","ecosystem":"Ubuntu:Pro:26.04:LTS","package":"mina2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.2.1-4","2.2.1-4ubuntu0.1~esm1"]}],"products":[{"vendor":"apache software foundation","product":"apache mina"}],"references":[{"url":"https://lists.apache.org/thread/y7xj1bl8qo47p9bktb11hg5v6k1d4dyj","tags":["mailing-list","vendor-advisory","report"]},{"url":"http://www.openwall.com/lists/oss-security/2026/09/21/1"},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-47321","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-3c8x-fp36-75xv"},{"url":"https://security-tracker.debian.org/tracker/CVE-2026-47321","tags":["advisory"]},{"url":"https://ubuntu.com/security/CVE-2026-47321","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-47321","tags":["report"]}],"sources":{"cve":[{"id":"CVE-2026-47321","title":"Apache MINA: Unbounded Decompression Amplification DoS in Zlib.inflate","description":"The CompressionFilter class uses ZLib to deflate and inflate data sent and received. When we inflate incoming data, the filter does not control the resulting size, and create a buffer no matter what.\n\nSome compressed data may have a compression ration greater than 1 thousand, leading to an exhaustion of the application memory, as we don't control the deflated size.\n\n\n\n\nThe fix adds such a control by allowing the application developer to provide a fixed size limit, which when reached throws an exception. It also allows the user to provide a compression ratio that should not be exceeded, protected the application from small inflated files that inflate in gigantic files, but with a grace limit for the resulting size (1Mb) to avoid false positive (like a very small file inflating with a high ratio, but resulting with a acceptable size, like a few thousands bytes)\n\n\n\n\nFor application using this feature, it is highly recommended to create the CompressionFilter and to pass the maximum limit as a forth constructor parameter, maxDecompressedSize:\n\n\n\n\npublic CompressionFilter(final boolean compressInbound, final boolean compressOutbound, final int compressionLevel, final int maxDecompressedSize)Optionally one can also provide a maxDecompressRatio fifth parameter, and a decompressRatioMinSize sixth parameter to allow small inflated files with a high compression ratio to still be accepted.\n\n\n\n\nHere are the additional constructor:\n\n\n\n\n\n\npublic CompressionFilter(final boolean compressInbound, final boolean compressOutbound,\n\n\n\n            final int compressionLevel, final int maxDecompressedSize,\n\n\n\n            final long maxDecompressRatio, final long decompressRatioMinSize)\n\n\n\n\n\n\n\n\nAlso note that a fluent API has been added to spare the users the pain to call a constructor with that many parameters:\n\n\n\n\n\n\n CompressionFilter compressionFilter = new CompressionFilter()\n\n                                                .setCompressionLevel(Zlib.COMPRESSION_MAX)\n\n                                                .setMaxDecompressedSize(1_000_000)\n\n                                                .setMaxDecompressRatio(100).\n\n                                                .setDecompressRatioMinSize(100_000); \n\n\n\n\n\n\n\n\n\nApplications using Apache MINA are advised to upgrade and configure their CompressionFilter instance.","status":"published","published":"2026-09-21T07:43:24.769Z","modified":"2026-09-21T18:09:30.104Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high","assessor":"cna"}],"cwes":["CWE-409","CWE-789"],"updated_at":"2026-11-02T13:36:51.6229Z"}],"euvd":[{"id":"EUVD-2026-83858","description":"The CompressionFilter class uses ZLib to deflate and inflate data sent and received. When we inflate incoming data, the filter does not control the resulting size, and create a buffer no matter what.\n\nSome compressed data may have a compression ration greater than 1 thousand, leading to an exhaustion of the application memory, as we don't control the deflated size.\n\n\n\n\nThe fix adds such a control by allowing the application developer to provide a fixed size limit, which when reached throws an exception. It also allows the user to provide a compression ratio that should not be exceeded, protected the application from small inflated files that inflate in gigantic files, but with a grace limit for the resulting size (1Mb) to avoid false positive (like a very small file inflating with a high ratio, but resulting with a acceptable size, like a few thousands bytes)\n\n\n\n\nFor application using this feature, it is highly recommended to create the CompressionFilter and to pass the maximum limit as a forth constructor parameter, maxDecompressedSize:\n\n\n\n\npublic CompressionFilter(final boolean compressInbound, final boolean compressOutbound, final int compressionLevel, final int maxDecompressedSize)Optionally one can also provide a maxDecompressRatio fifth parameter, and a decompressRatioMinSize sixth parameter to allow small inflated files with a high compression ratio to still be accepted.\n\n\n\n\nHere are the additional constructor:\n\n\n\n\n\n\npublic CompressionFilter(final boolean compressInbound, final boolean compressOutbound,\n\n\n\n            final int compressionLevel, final int maxDecompressedSize,\n\n\n\n            final long maxDecompressRatio, final long decompressRatioMinSize)\n\n\n\n\n\n\n\n\nAlso note that a fluent API has been added to spare the users the pain to call a constructor with that many parameters:\n\n\n\n\n\n\n CompressionFilter compressionFilter = new CompressionFilter()\n\n                                                .setCompressionLevel(Zlib.COMPRESSION_MAX)\n\n                                                .setMaxDecompressedSize(1_000_000)\n\n                                                .setMaxDecompressRatio(100).\n\n                                                .setDecompressRatioMinSize(100_000); \n\n\n\n\n\n\n\n\n\nApplications using Apache MINA are advised to upgrade and configure their CompressionFilter instance.","status":"published","published":"2026-09-21T07:43:24Z","modified":"2026-09-21T18:09:30Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"updated_at":"2026-11-02T17:28:05.032636Z"}],"ghsa":[{"id":"GHSA-3c8x-fp36-75xv","title":"The CompressionFilter class uses ZLib to deflate and inflate data sent and received. When we...","description":"The CompressionFilter class uses ZLib to deflate and inflate data sent and received. When we inflate incoming data, the filter does not control the resulting size, and create a buffer no matter what.\n\nSome compressed data may have a compression ration greater than 1 thousand, leading to an exhaustion of the application memory, as we don't control the deflated size.\n\n\n\n\nThe fix adds such a control by allowing the application developer to provide a fixed size limit, which when reached throws an exception. It also allows the user to provide a compression ratio that should not be exceeded, protected the application from small inflated files that inflate in gigantic files, but with a grace limit for the resulting size (1Mb) to avoid false positive (like a very small file inflating with a high ratio, but resulting with a acceptable size, like a few thousands bytes)\n\n\n\n\nFor application using this feature, it is highly recommended to create the CompressionFilter and to pass the maximum limit as a forth constructor parameter, maxDecompressedSize:\n\n\n\n\npublic CompressionFilter(final boolean compressInbound, final boolean compressOutbound, final int compressionLevel, final int maxDecompressedSize)Optionally one can also provide a maxDecompressRatio fifth parameter, and a decompressRatioMinSize sixth parameter to allow small inflated files with a high compression ratio to still be accepted.\n\n\n\n\nHere are the additional constructor:\n\n\n\n\n\n\npublic CompressionFilter(final boolean compressInbound, final boolean compressOutbound,\n\n\n\n            final int compressionLevel, final int maxDecompressedSize,\n\n\n\n            final long maxDecompressRatio, final long decompressRatioMinSize)\n\n\n\n\n\n\n\n\nAlso note that a fluent API has been added to spare the users the pain to call a constructor with that many parameters:\n\n\n\n\n\n\n CompressionFilter compressionFilter = new CompressionFilter()\n\n                                                .setCompressionLevel(Zlib.COMPRESSION_MAX)\n\n                                                .setMaxDecompressedSize(1_000_000)\n\n                                                .setMaxDecompressRatio(100).\n\n                                                .setDecompressRatioMinSize(100_000); \n\n\n\n\n\n\n\n\n\nApplications using Apache MINA are advised to upgrade and configure their CompressionFilter instance.","status":"published","published":"2026-09-21T09:31:08Z","modified":"2026-09-21T21:31:51Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"cwes":["CWE-409"],"updated_at":"2026-11-02T15:12:16.582397Z"}],"nvd":[{"id":"CVE-2026-47321","description":"The CompressionFilter class uses ZLib to deflate and inflate data sent and received. When we inflate incoming data, the filter does not control the resulting size, and create a buffer no matter what.\n\nSome compressed data may have a compression ration greater than 1 thousand, leading to an exhaustion of the application memory, as we don't control the deflated size.\n\n\n\n\nThe fix adds such a control by allowing the application developer to provide a fixed size limit, which when reached throws an exception. It also allows the user to provide a compression ratio that should not be exceeded, protected the application from small inflated files that inflate in gigantic files, but with a grace limit for the resulting size (1Mb) to avoid false positive (like a very small file inflating with a high ratio, but resulting with a acceptable size, like a few thousands bytes)\n\n\n\n\nFor application using this feature, it is highly recommended to create the CompressionFilter and to pass the maximum limit as a forth constructor parameter, maxDecompressedSize:\n\n\n\n\npublic CompressionFilter(final boolean compressInbound, final boolean compressOutbound, final int compressionLevel, final int maxDecompressedSize)Optionally one can also provide a maxDecompressRatio fifth parameter, and a decompressRatioMinSize sixth parameter to allow small inflated files with a high compression ratio to still be accepted.\n\n\n\n\nHere are the additional constructor:\n\n\n\n\n\n\npublic CompressionFilter(final boolean compressInbound, final boolean compressOutbound,\n\n\n\n            final int compressionLevel, final int maxDecompressedSize,\n\n\n\n            final long maxDecompressRatio, final long decompressRatioMinSize)\n\n\n\n\n\n\n\n\nAlso note that a fluent API has been added to spare the users the pain to call a constructor with that many parameters:\n\n\n\n\n\n\n CompressionFilter compressionFilter = new CompressionFilter()\n\n                                                .setCompressionLevel(Zlib.COMPRESSION_MAX)\n\n                                                .setMaxDecompressedSize(1_000_000)\n\n                                                .setMaxDecompressRatio(100).\n\n                                                .setDecompressRatioMinSize(100_000); \n\n\n\n\n\n\n\n\n\nApplications using Apache MINA are advised to upgrade and configure their CompressionFilter instance.","status":"published","published":"2026-09-21T08:16:37.52Z","modified":"2026-09-21T19:17:06.247Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high","assessor":"secondary"}],"cwes":["CWE-409","CWE-789"],"updated_at":"2026-11-02T14:12:50.043898Z"}],"osv":[{"id":"DEBIAN-CVE-2026-47321","description":"The CompressionFilter class uses ZLib to deflate and inflate data sent and received. When we inflate incoming data, the filter does not control the resulting size, and create a buffer no matter what.  Some compressed data may have a compression ration greater than 1 thousand, leading to an exhaustion of the application memory, as we don't control the deflated size.     The fix adds such a control by allowing the application developer to provide a fixed size limit, which when reached throws an exception. It also allows the user to provide a compression ratio that should not be exceeded, protected the application from small inflated files that inflate in gigantic files, but with a grace limit for the resulting size (1Mb) to avoid false positive (like a very small file inflating with a high ratio, but resulting with a acceptable size, like a few thousands bytes)     For application using this feature, it is highly recommended to create the CompressionFilter and to pass the maximum limit as a forth constructor parameter, maxDecompressedSize:     public CompressionFilter(final boolean compressInbound, final boolean compressOutbound, final int compressionLevel, final int maxDecompressedSize)Optionally one can also provide a maxDecompressRatio fifth parameter, and a decompressRatioMinSize sixth parameter to allow small inflated files with a high compression ratio to still be accepted.     Here are the additional constructor:       public CompressionFilter(final boolean compressInbound, final boolean compressOutbound,                final int compressionLevel, final int maxDecompressedSize,                final long maxDecompressRatio, final long decompressRatioMinSize)         Also note that a fluent API has been added to spare the users the pain to call a constructor with that many parameters:        CompressionFilter compressionFilter = new CompressionFilter()                                                  .setCompressionLevel(Zlib.COMPRESSION_MAX)                                                  .setMaxDecompressedSize(1_000_000)                                                  .setMaxDecompressRatio(100).                                                  .setDecompressRatioMinSize(100_000);           Applications using Apache MINA are advised to upgrade and configure their CompressionFilter instance.","status":"published","published":"2026-09-21T08:16:37.52Z","modified":"2026-10-01T03:03:07.392157971Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"updated_at":"2026-11-02T15:45:56.444225Z"},{"id":"RHLW-2026-2cb9a31c02a7f38b","title":"Lightwell Security Advisory: mina-filter-compression 2.2.5.rhlw-00008","description":"Red Hat Lightwell has released org.apache.mina:mina-filter-compression 2.2.5.rhlw-00008 with a backported security fix.\n\nCVE-2026-47321: The CompressionFilter class uses ZLib to deflate and inflate data sent and received. When we inflate incoming data, the filter does not control the resulting size, and create a buffer no matter what.\n\nSome compressed data may have a compression ration greater than 1 thousand, leading to an exhaustion of the application memory, as we don't control the deflated size.\n\n\n\n\nThe fix adds such a control by allowing the application developer to provide a fixed size limit, which when reached throws an exception. It also allows the user to provide a compression ratio that should not be exceeded, protected the application from small inflated files that inflate in gigantic files, but with a grace limit for the resulting size (1Mb) to avoid false positive (like a very small file inflating with a high ratio, but resulting with a acceptable size, like a few thousands bytes)\n\n\n\n\nFor application using this feature, it is highly recommended to create the CompressionFilter and to pass the maximum limit as a forth constructor parameter, maxDecompressedSize:\n\n\n\n\npublic CompressionFilter(final boolean compressInbound, final boolean compressOutbound, final int compressionLevel, final int maxDecompressedSize)Optionally one can also provide a maxDecompressRatio fifth parameter, and a decompressRatioMinSize sixth parameter to allow small inflated files with a high compression ratio to still be accepted.\n\n\n\n\nHere are the additional constructor:\n\n\n\n\n\n\npublic CompressionFilter(final boolean compressInbound, final boolean compressOutbound,\n\n\n\n            final int compressionLevel, final int maxDecompressedSize,\n\n\n\n            final long maxDecompressRatio, final long decompressRatioMinSize)\n\n\n\n\n\n\n\n\nAlso note that a fluent API has been added to spare the users the pain to call a constructor with that many parameters:\n\n\n\n\n\n\n CompressionFilter compressionFilter = new CompressionFilter()\n\n                                                .setCompressionLevel(Zlib.COMPRESSION_MAX)\n\n                                                .setMaxDecompressedSize(1_000_000)\n\n                                                .setMaxDecompressRatio(100).\n\n                                                .setDecompressRatioMinSize(100_000); \n\n\n\n\n\n\n\n\n\nApplications using Apache MINA are advised to upgrade and configure their CompressionFilter instance.\n\nThis patched artifact is a drop-in replacement for org.apache.mina:mina-filter-compression 2.2.5 from Maven Central.","status":"published","published":"2026-10-22T14:30:12Z","modified":"2026-10-27T08:45:03.09241113Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"updated_at":"2026-11-02T15:52:58.636919Z"},{"id":"UBUNTU-CVE-2026-47321","description":"The CompressionFilter class uses ZLib to deflate and inflate data sent and received. When we inflate incoming data, the filter does not control the resulting size, and create a buffer no matter what. Some compressed data may have a compression ration greater than 1 thousand, leading to an exhaustion of the application memory, as we don't control the deflated size. The fix adds such a control by allowing the application developer to provide a fixed size limit, which when reached throws an exception. It also allows the user to provide a compression ratio that should not be exceeded, protected the application from small inflated files that inflate in gigantic files, but with a grace limit for the resulting size (1Mb) to avoid false positive (like a very small file inflating with a high ratio, but resulting with a acceptable size, like a few thousands bytes) For application using this feature, it is highly recommended to create the CompressionFilter and to pass the maximum limit as a forth constructor parameter, maxDecompressedSize: public CompressionFilter(final boolean compressInbound, final boolean compressOutbound, final int compressionLevel, final int maxDecompressedSize)Optionally one can also provide a maxDecompressRatio fifth parameter, and a decompressRatioMinSize sixth parameter to allow small inflated files with a high compression ratio to still be accepted. Here are the additional constructor: public CompressionFilter(final boolean compressInbound, final boolean compressOutbound,             final int compressionLevel, final int maxDecompressedSize,             final long maxDecompressRatio, final long decompressRatioMinSize) Also note that a fluent API has been added to spare the users the pain to call a constructor with that many parameters:  CompressionFilter compressionFilter = new CompressionFilter() .setCompressionLevel(Zlib.COMPRESSION_MAX) .setMaxDecompressedSize(1_000_000) .setMaxDecompressRatio(100). .setDecompressRatioMinSize(100_000); Applications using Apache MINA are advised to upgrade and configure their CompressionFilter instance.","status":"published","published":"2026-09-21T08:16:00Z","modified":"2026-10-17T13:00:16.881407706Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"updated_at":"2026-11-02T16:56:30.797112Z"}]}}
