181 lines
12 KiB
JSON
181 lines
12 KiB
JSON
{
|
||
"dataType": "CVE_RECORD",
|
||
"dataVersion": "5.2",
|
||
"cveMetadata": {
|
||
"cveId": "CVE-2026-47321",
|
||
"assignerOrgId": "f0158376-9dc2-43b6-827c-5f631a4d8d09",
|
||
"state": "PUBLISHED",
|
||
"assignerShortName": "apache",
|
||
"dateReserved": "2026-05-19T07:41:55.668Z",
|
||
"datePublished": "2026-09-21T07:43:24.769Z",
|
||
"dateUpdated": "2026-09-21T18:09:30.104Z"
|
||
},
|
||
"containers": {
|
||
"cna": {
|
||
"providerMetadata": {
|
||
"orgId": "f0158376-9dc2-43b6-827c-5f631a4d8d09",
|
||
"shortName": "apache",
|
||
"dateUpdated": "2026-09-21T07:43:24.769Z"
|
||
},
|
||
"title": "Apache MINA: Unbounded Decompression Amplification DoS in Zlib.inflate",
|
||
"problemTypes": [
|
||
{
|
||
"descriptions": [
|
||
{
|
||
"description": "CWE-409: Improper Handling of Highly Compressed Data — Data Amplification",
|
||
"lang": "en",
|
||
"cweId": "CWE-409",
|
||
"type": "CWE"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"descriptions": [
|
||
{
|
||
"description": "CWE-789: Memory Allocation with Excessive Size Value",
|
||
"lang": "en",
|
||
"cweId": "CWE-789",
|
||
"type": "CWE"
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"source": {
|
||
"discovery": "UNKNOWN"
|
||
},
|
||
"affected": [
|
||
{
|
||
"vendor": "Apache Software Foundation",
|
||
"product": "Apache MINA",
|
||
"collectionURL": "https://repo.maven.apache.org/maven2",
|
||
"packageName": "org.apache.mina:mina-filter-compression",
|
||
"versions": [
|
||
{
|
||
"status": "affected",
|
||
"version": "2.2.0",
|
||
"lessThan": "2.2.8",
|
||
"versionType": "maven"
|
||
},
|
||
{
|
||
"status": "affected",
|
||
"version": "2.1.0",
|
||
"lessThan": "2.1.13",
|
||
"versionType": "maven"
|
||
},
|
||
{
|
||
"status": "affected",
|
||
"version": "2.0.0",
|
||
"lessThan": "2.0.29",
|
||
"versionType": "maven"
|
||
}
|
||
],
|
||
"defaultStatus": "unaffected"
|
||
}
|
||
],
|
||
"descriptions": [
|
||
{
|
||
"value": "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.",
|
||
"lang": "en",
|
||
"supportingMedia": [
|
||
{
|
||
"type": "text/html",
|
||
"base64": false,
|
||
"value": "<div>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.</div><div>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.</div><div><br></div><div>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)</div><div><br></div><div>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:</div><div><br></div><blockquote>public <span>CompressionFilter</span>(final boolean compressInbound, final boolean compressOutbound, final int compressionLevel, final int maxDecompressedSize)</blockquote><div>Optionally one can also provide a <span><span><span>maxDecompressRatio</span></span></span> fifth parameter, and a <span><span><span>decompressRatioMinSize</span></span></span> sixth parameter to allow small inflated files with a high compression ratio to still be accepted.</div><div><br></div><div>Here are the additional constructor:</div><div><br></div><div><div><div><blockquote><p>public CompressionFilter(final boolean compressInbound, final boolean compressOutbound,</p><p> final int compressionLevel, final int maxDecompressedSize,</p><p> final long maxDecompressRatio, final long <span>decompressRatioMinSize</span>)</p></blockquote></div></div><br></div><div>Also note that a fluent API has been added to spare the users the pain to call a constructor with that many parameters:</div><div><br></div><div></div><blockquote><div> CompressionFilter compressionFilter = new CompressionFilter()</div><div> .setCompressionLevel(Zlib.<span><span><span>COMPRESSION_MAX</span></span></span>)</div><div> .<span><span>setMaxDecompressedSize</span></span>(1_000_000)</div><div> .<span><span>setMaxDecompressRatio</span></span>(100).</div><div> .<span><span>setDecompressRatioMinSize</span></span>(100_000); </div><div></div></blockquote><div></div><div><br></div><div>\nApplications using Apache MINA are advised to upgrade and configure their CompressionFilter instance.</div>"
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"references": [
|
||
{
|
||
"url": "https://lists.apache.org/thread/y7xj1bl8qo47p9bktb11hg5v6k1d4dyj",
|
||
"tags": [
|
||
"mailing-list",
|
||
"vendor-advisory"
|
||
]
|
||
}
|
||
],
|
||
"metrics": [
|
||
{
|
||
"scenarios": [
|
||
{
|
||
"lang": "en",
|
||
"value": "GENERAL"
|
||
}
|
||
],
|
||
"format": "CVSS",
|
||
"cvssV3_1": {
|
||
"version": "3.1",
|
||
"attackVector": "NETWORK",
|
||
"attackComplexity": "LOW",
|
||
"privilegesRequired": "NONE",
|
||
"userInteraction": "NONE",
|
||
"scope": "UNCHANGED",
|
||
"confidentialityImpact": "NONE",
|
||
"integrityImpact": "NONE",
|
||
"availabilityImpact": "HIGH",
|
||
"baseSeverity": "HIGH",
|
||
"baseScore": 7.5,
|
||
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
|
||
}
|
||
}
|
||
],
|
||
"credits": [
|
||
{
|
||
"lang": "en",
|
||
"value": "Venkatraman Kumar, SecurIn",
|
||
"type": "finder"
|
||
}
|
||
],
|
||
"x_generator": {
|
||
"engine": "Vulnogram 0.2.0"
|
||
}
|
||
},
|
||
"adp": [
|
||
{
|
||
"metrics": [
|
||
{
|
||
"other": {
|
||
"type": "ssvc",
|
||
"content": {
|
||
"timestamp": "2026-09-21T14:00:30.976651Z",
|
||
"id": "CVE-2026-47321",
|
||
"options": [
|
||
{
|
||
"Exploitation": "none"
|
||
},
|
||
{
|
||
"Automatable": "yes"
|
||
},
|
||
{
|
||
"Technical Impact": "partial"
|
||
}
|
||
],
|
||
"role": "CISA Coordinator",
|
||
"version": "2.0.3"
|
||
}
|
||
}
|
||
}
|
||
],
|
||
"title": "CISA ADP Vulnrichment",
|
||
"providerMetadata": {
|
||
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
|
||
"shortName": "CISA-ADP",
|
||
"dateUpdated": "2026-09-21T14:00:48.113Z"
|
||
}
|
||
},
|
||
{
|
||
"title": "CVE Program Container",
|
||
"references": [
|
||
{
|
||
"url": "http://www.openwall.com/lists/oss-security/2026/09/21/1"
|
||
}
|
||
],
|
||
"providerMetadata": {
|
||
"orgId": "af854a3a-2127-422b-91ae-364da2661108",
|
||
"shortName": "CVE",
|
||
"dateUpdated": "2026-09-21T18:09:30.104Z"
|
||
}
|
||
}
|
||
]
|
||
}
|
||
} |