CVE-2026-81875 json
HAPI FHIR: SHCParser unbounded DEFLATE decompression causes denial of service
published 2026-09-16 53 d ago modified 2026-09-30 40 d ago also EUVD-2026-80993 , GHSA-3w98-rrpr-fprr
- cvss
- 7.5
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.6%
- EPSS 0.6% chance of exploitation in 30 days, percentile 50%
- public exploits
- 0
- none known
Summary
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.
Patch / fix
- maven ca.uhn.hapi.fhir:org.hl7.fhir.r5 6.9.12
- maven ca.uhn.hapi.fhir:org.hl7.fhir.validation 6.9.12
- ca.uhn.hapi.fhir org.hl7.fhir.core 6.9.12
- hapifhir hl7_fhir_core 6.9.12
CISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- yes
- Technical impact
- partial
- Assessed
- 53 d ago
Exploit prediction
0.63% chance of exploitation in the next 30 days, higher than 50% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- github.com https://github.com/hapifhir/org.hl7.fhir.core/security/advisories/GHSA-3w98-rrpr-fprr referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H |
| GitHub | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| maven | ca.uhn.hapi.fhir:org.hl7.fhir.r5 | <6.9.12 |
6.9.12 |
| maven | ca.uhn.hapi.fhir:org.hl7.fhir.validation | <6.9.12 |
6.9.12 |
| maven | ca.uhn.hapi.fhir:org.hl7.fhir.validation.cli | <=5.0.0 |
no fix listed |
Affected products
- hapifhir org.hl7.fhir.core
Classification
References
-
github.com
/hapifhir/org.hl7.fhir.core/pull/2493
web
-
github.com
/hapifhir/org.hl7.fhir.core/commit/fbb94216e0ad21ded75be77e5e20242ba194e83f
web
-
github.com
/hapifhir/org.hl7.fhir.core/security/advisories/GHSA-3w98-rrpr-fprr
exploit, web
-
github.com
/hapifhir/org.hl7.fhir.core/releases/tag/6.9.11
web
-
github.com
/hapifhir/org.hl7.fhir.core/releases/tag/6.9.12
web
-
nvd.nist.gov
/vuln/detail/CVE-2026-81875
advisory
-
github.com
/hapifhir/org.hl7.fhir.core
package
Sources
- CVE List CVE-2026-81875
- GitHub Advisory GHSA-3w98-rrpr-fprr
- NVD CVE-2026-81875
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.