CVE-2026-81876: HAPI FHIR: SHCParser DEFLATE infinite loop causes denial of service

Published Sep 16, 2026
·
Updated

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.

Affected Software

1 affected component
Hapi HAPI FHIR<6.9.12

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade HAPI FHIR (SHCParser) to a version that resolves this vulnerability.

    Fixed in 6.9.12
  2. Compensating control

    Mitigate denial of service from malformed validation requests by adding external rate limiting/traffic throttling for requests that trigger Smart Health Card JWT parsing, since malformed Smart Health Card content can pin JVM worker threads and exhaust validation workers.

Event History

Sep 16, 2026
CVE Published
via MITRE·06:48 PM
Data Sourced
via MITRE·06:48 PM
DescriptionSeverityWeakness

Frequently Asked Questions

1

Which deployments are exposed to this denial of service?

Deployments using HAPI FHIR versions before 6.9.12 are affected if they process attacker-controlled Smart Health Card JWT content or perform file-format detection that can reach SHC parsing. A malformed validation request can indefinitely occupy a JVM validation worker thread.

2

What does an attacker need to send to trigger the issue?

The attacker needs to supply a Smart Health Card JWT with a header containing zip: "DEF" and an empty or truncated raw-DEFLATE payload. No authentication or user interaction is required according to the reported vector.

3

How can this affect service availability?

A single malformed request can pin a JVM worker thread in an infinite loop. Concurrent malformed requests can exhaust all validation workers and prevent the service from processing legitimate validation work.

4

What should be done to remediate the issue?

Upgrade HAPI FHIR to version 6.9.12, which fixes the issue. The provided data does not identify a workaround for deployments that cannot immediately upgrade.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203