Description
HAPI FHIR is a complete implementation of the HL7 FHIR standard for healthcare interoperability in Java. Prior to version 6.9.12, SHCParser in org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/elementmodel/SHCParser.java can consume attacker-controlled Smart Health Card JWT content whose header contains zip: "DEF" and whose small raw-DEFLATE payload expands to a very large value. SHCParser.decodeJWT() passes the decoded payload to SHCParser.inflate(), which accumulates all decompressed bytes in a ByteArrayOutputStream without an output-size limit before JSON parsing, and SHCParser.decompress() contains the same unbounded pattern. An application or validator service that accepts attacker-supplied SHC content can therefore suffer excessive heap allocation, severe garbage-collection pressure, request failure, process instability, or process termination. This issue is fixed in version 6.9.12.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| hapifhir | org.hl7.fhir.core | < 6.9.12 | — |
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| Maven | ca.uhn.hapi.fhir:org.hl7.fhir.r5 | < 6.9.12 | 6.9.12 | GHSA-3w98-rrpr-fprr |
| Maven | ca.uhn.hapi.fhir:org.hl7.fhir.validation | < 6.9.12 | 6.9.12 | GHSA-3w98-rrpr-fprr |
| Maven | ca.uhn.hapi.fhir:org.hl7.fhir.validation.cli | <= 5.0.0 | — | GHSA-3w98-rrpr-fprr |
References
- https://github.com/hapifhir/org.hl7.fhir.core/security/advisories/GHSA-3w98-rrpr-fprr
- https://github.com/hapifhir/org.hl7.fhir.core/pull/2493
- https://github.com/hapifhir/org.hl7.fhir.core/commit/fbb94216e0ad21ded75be77e5e20242ba194e83f
- https://github.com/hapifhir/org.hl7.fhir.core/releases/tag/6.9.11
- https://github.com/hapifhir/org.hl7.fhir.core/releases/tag/6.9.12