Katalog CVE

CVE-2026-81876

WysokieCVSS 7.5
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Streszczenie

HAPI FHIR to kompletna implementacja standardu HL7 FHIR dla interoperacyjności w opiece zdrowotnej w Javie. Przed wersją 6.9.12, SHCParser w org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/elementmodel/SHCParser.java może wejść w nieskończoną pętlę podczas przetwarzania kontrolowanej przez atakującego treści JWT Smart Health Card, której nagłówek zawiera zip: "DEF" i której surowa treść DEFLATE jest pusta lub obcięta. SHCParser.decodeJWT() dociera do SHCParser.inflate(), gdzie Inflater.inflate() może zwrócić zero, podczas gdy Inflater.finished() pozostaje fałszywe, a Inflater.needsInput() jest prawdziwe. Pętla nie ma również warunku zakończenia Inflater.needsDictionary(), SHCParser.decompress() zawiera ten sam wzorzec zerowego postępu, a ResourceChecker.java może osiągnąć parsowanie SHC podczas wykrywania formatu pliku. Nieprawidłowe żądanie walidacji może zablokować wątek roboczy JVM na czas nieokreślony, a równoczesne żądania mogą wyczerpać wszystkich pracowników walidacji. Problem został naprawiony w wersji 6.9.12.

Ocena ryzyka

Atakujący może spowodować zawieszenie wątków walidacji, co prowadzi do wyczerpania zasobów i odmowy usługi, co jest szczególnie krytyczne w środowiskach opieki zdrowotnej.

Rekomendacja

Zaleca się natychmiastową aktualizację HAPI FHIR do wersji 6.9.12 lub nowszej, aby zapobiec atakom DoS przez nieskończone pętle.

Inne podatności w HAPI FHIR

Zobacz wszystkie
Oryginalny opis (angielski, źródło NVD)

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.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS