CVE-2026-81876: CWE-20: Improper Input Validation in hapifhir org.hl7.fhir.core
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 enter an infinite loop while processing attacker-controlled Smart Health Card JWT content whose header contains zip: "DEF" and whose raw-DEFLATE payload is empty or truncated. SHCParser.decodeJWT() reaches SHCParser.inflate(), where Inflater.inflate() can return zero while Inflater.finished() remains false and Inflater.needsInput() is true. The loop also lacks an Inflater.needsDictionary() termination check, SHCParser.decompress() contains the same zero-progress pattern, and ResourceChecker.java can reach SHC parsing during file-format detection. A malformed validation request can pin a JVM worker thread indefinitely, and concurrent requests can exhaust all validation workers. This issue is fixed in version 6.9.12.
AI Analysis
Technical Summary
HAPI FHIR versions before 6.9.12 contain an improper input validation vulnerability (CWE-20) in the SHCParser component when processing Smart Health Card JWTs. Specifically, if the JWT header contains zip: "DEF" and the raw-DEFLATE payload is empty or truncated, the SHCParser.decodeJWT() method enters an infinite loop during decompression. This occurs because Inflater.inflate() returns zero progress while Inflater.finished() is false and Inflater.needsInput() is true, and the loop lacks a termination check for Inflater.needsDictionary(). The same zero-progress pattern exists in SHCParser.decompress(), and ResourceChecker.java can trigger SHC parsing during file-format detection. The vulnerability can cause a denial of service by pinning JVM worker threads indefinitely and exhausting all validation workers under concurrent requests. The issue is addressed and fixed in version 6.9.12.
Potential Impact
This vulnerability results in a denial of service (DoS) condition by causing infinite loops that pin JVM worker threads indefinitely. Under concurrent exploitation, all validation worker threads can be exhausted, potentially disrupting healthcare interoperability services relying on HAPI FHIR. There is no impact on confidentiality or integrity reported.
Mitigation Recommendations
Upgrade HAPI FHIR to version 6.9.12 or later, where this issue is fixed. No other mitigations are indicated or necessary as the fix addresses the root cause in the SHCParser component.
CVE-2026-81876: CWE-20: Improper Input Validation in hapifhir org.hl7.fhir.core
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 enter an infinite loop while processing attacker-controlled Smart Health Card JWT content whose header contains zip: "DEF" and whose raw-DEFLATE payload is empty or truncated. SHCParser.decodeJWT() reaches SHCParser.inflate(), where Inflater.inflate() can return zero while Inflater.finished() remains false and Inflater.needsInput() is true. The loop also lacks an Inflater.needsDictionary() termination check, SHCParser.decompress() contains the same zero-progress pattern, and ResourceChecker.java can reach SHC parsing during file-format detection. A malformed validation request can pin a JVM worker thread indefinitely, and concurrent requests can exhaust all validation workers. This issue is fixed in version 6.9.12.
CVSS v3.1
Score 7.5high
Affected software
hapifhir
org.hl7.fhir.core
Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
HAPI FHIR versions before 6.9.12 contain an improper input validation vulnerability (CWE-20) in the SHCParser component when processing Smart Health Card JWTs. Specifically, if the JWT header contains zip: "DEF" and the raw-DEFLATE payload is empty or truncated, the SHCParser.decodeJWT() method enters an infinite loop during decompression. This occurs because Inflater.inflate() returns zero progress while Inflater.finished() is false and Inflater.needsInput() is true, and the loop lacks a termination check for Inflater.needsDictionary(). The same zero-progress pattern exists in SHCParser.decompress(), and ResourceChecker.java can trigger SHC parsing during file-format detection. The vulnerability can cause a denial of service by pinning JVM worker threads indefinitely and exhausting all validation workers under concurrent requests. The issue is addressed and fixed in version 6.9.12.
Potential Impact
This vulnerability results in a denial of service (DoS) condition by causing infinite loops that pin JVM worker threads indefinitely. Under concurrent exploitation, all validation worker threads can be exhausted, potentially disrupting healthcare interoperability services relying on HAPI FHIR. There is no impact on confidentiality or integrity reported.
Mitigation Recommendations
Upgrade HAPI FHIR to version 6.9.12 or later, where this issue is fixed. No other mitigations are indicated or necessary as the fix addresses the root cause in the SHCParser component.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- GitHub_M
- Date Reserved
- 2026-08-27T17:48:42.121Z
- Cvss Version
- 3.1
- State
- PUBLISHED
Threat ID: 6aaae7b555bf5e2cf5087548
Added to database: 09/16/2026, 19:02:13 UTC
Last enriched: 09/16/2026, 19:16:48 UTC
Last updated: 09/16/2026, 22:27:53 UTC
Views: 5
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.