CompressionUtils.inflate() decompressed attacker-controlled DEFLATE data with no output-size cap. A small (~KB) crafted payload could expand to gigabytes on the heap. Reachable via JWE decryption when zip=DEF (e.g. JoseSessionTokenProvider with RSA-OAEP key wrap) and via SAML redirect/POST binding token inflation — in both cases decompression happens before/independent of trust validation.
Fix: Added a configurable maximum inflated-size cap (default 10 MiB, org.apache.cxf.compression-max-inflated-size system property) to CompressionUtils.inflate(); aborts with DataFormatException once exceeded. Users are recommended to upgrade to versions 4.2.4 or 4.1.9 or 3.6.13, which fix this issue.
Attack Parameters
Impact Assessment
CVSS Vector v3.1
Weakness Type (CWE)
Vulnerable Products 3
| Configuration | From (including) | Up to (excluding) |
|---|---|---|
|
Apache Cxf
cpe:2.3:a:apache:cxf:*:*:*:*:*:*:*:*
|
— |
3.6.13
|
|
Apache Cxf
cpe:2.3:a:apache:cxf:*:*:*:*:*:*:*:*
|
4.0.0
|
4.1.9
|
|
Apache Cxf
cpe:2.3:a:apache:cxf:*:*:*:*:*:*:*:*
|
4.2.0
|
4.2.4
|