Every CVE Search/ Get API key

CVE-2026-49485

HAPI FHIR: ReDoS via FHIRPath matches()/replaceMatches() in FHIR Validator HTTP Endpoint

7.5 HighFix available

HAPI FHIR is a complete implementation of the HL7 FHIR standard for healthcare interoperability in Java. Prior to 6.9.9 and 6.9.4.2, all implementations of FHIRPathEngine accept arbitrary FHIRPath expressions and evaluate them without input validation, and the FHIRPath functions matches(), matchesFull(), and replaceMatches() pass user-controlled regular expressions to Java's Pattern.compile() and String.replaceAll() through an incomplete timeout utility. An attacker can send a resource containing an evil regex pattern that causes catastrophic backtracking, exhausting CPU resources and causing denial of service in the FHIR Validator HTTP endpoint and affected org.hl7.fhir.* modules. This issue is fixed in versions 6.9.9 and 6.9.4.2.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
Low
Privileges needed
None
User interaction
None

What an attacker can affect

Confidentiality
None
Integrity
None
Availability
High

Exploit likelihood

0.68%Unchanged since Jul 18, 2026
90%50%10%1%

What each source reports

CVE List Score used 7.5

HAPI FHIR: ReDoS via FHIRPath matches()/replaceMatches() in FHIR Validator HTTP Endpoint

HAPI FHIR is a complete implementation of the HL7 FHIR standard for healthcare interoperability in Java. Prior to 6.9.9 and 6.9.4.2, all implementations of FHIRPathEngine accept arbitrary FHIRPath expressions and evaluate them without input validation, and the FHIRPath functions matches(), matchesFull(), and replaceMatches() pass user-controlled regular expressions to Java's Pattern.compile() and String.replaceAll() through an incomplete timeout utility. An attacker can send a resource containing an evil regex pattern that causes catastrophic backtracking, exhausting CPU resources and causing denial of service in the FHIR Validator HTTP endpoint and affected org.hl7.fhir.* modules. This issue is fixed in versions 6.9.9 and 6.9.4.2.

Record
CVE-2026-49485
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-1333, CWE-400
Updated
2026-11-02
EUVDEUVD-2026-45338 7.5

HAPI FHIR is a complete implementation of the HL7 FHIR standard for healthcare interoperability in Java. Prior to 6.9.9 and 6.9.4.2, all implementations of FHIRPathEngine accept arbitrary FHIRPath expressions and evaluate them without input validation, and the FHIRPath functions matches(), matchesFull(), and replaceMatches() pass user-controlled regular expressions to Java's Pattern.compile() and String.replaceAll() through an incomplete timeout utility. An attacker can send a resource containing an evil regex pattern that causes catastrophic backtracking, exhausting CPU resources and causing denial of service in the FHIR Validator HTTP endpoint and affected org.hl7.fhir.* modules. This issue is fixed in versions 6.9.9 and 6.9.4.2.

Record
EUVD-2026-45338
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-02
GitHub AdvisoriesGHSA-7cmj-v6x8-frvv 7.5

org.hl7.fhir.core: ReDoS via FHIRPath matches()/replaceMatches() in FHIR Validator HTTP Endpoint

Summary

All implementations of FHIRPathEngine accept arbitrary FHIRPath expressions and evaluate them without input validation. The utility intended to secure this evaluation did so incorrectly, and did not fully cover all places in which evaluation was being done. An attacker can send a resource containing an evil regex pattern that causes catastrophic backtracking, exhausting system resources, and causing Denial-of-Service.

Details

The vulnerability exists in regex execution in FHIRPathEngine implementations across multiple code modules. The FHIRPath functions matches(), matchesFull(), and replaceMatches() pass user-controlled regular expressions to Java's Pattern.compile() and String.replaceAll() through a utility class designed to time out after a specified interval. That utility correctly cancelled a single executor thread and returned with an exception, but the execution within the thread had no means to listen for this cancellation and would persist. Furthermore, three modules contained method calls in FHIRPathEngine that were not protected by this utility class.

Why this is exploitable:

Java's Pattern.compile() with a pattern like (a+)+$ against input "aaaaaaaaaaaaaaaaaaaaaa!" causes exponential backtracking (O(2^n) time complexity).

Impact

CPU Exhaustion: The exponential backtracking in Java's regex engine consumes 100% of a CPU core for the duration of the hang (effectively infinite for sufficiently long input strings) for callers of FHIRPathEngine.

Record
GHSA-7cmj-v6x8-frvv
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-400, CWE-1333
Updated
2026-11-02
NVD 7.5

HAPI FHIR is a complete implementation of the HL7 FHIR standard for healthcare interoperability in Java. Prior to 6.9.9 and 6.9.4.2, all implementations of FHIRPathEngine accept arbitrary FHIRPath expressions and evaluate them without input validation, and the FHIRPath functions matches(), matchesFull(), and replaceMatches() pass user-controlled regular expressions to Java's Pattern.compile() and String.replaceAll() through an incomplete timeout utility. An attacker can send a resource containing an evil regex pattern that causes catastrophic backtracking, exhausting CPU resources and causing denial of service in the FHIR Validator HTTP endpoint and affected org.hl7.fhir.* modules. This issue is fixed in versions 6.9.9 and 6.9.4.2.

Record
CVE-2026-49485
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-400, CWE-1333
Updated
2026-11-02
OSV 7.5

HAPI FHIR: ReDoS via FHIRPath matches()/replaceMatches() in FHIR Validator HTTP Endpoint

HAPI FHIR is a complete implementation of the HL7 FHIR standard for healthcare interoperability in Java. Prior to 6.9.9 and 6.9.4.2, all implementations of FHIRPathEngine accept arbitrary FHIRPath expressions and evaluate them without input validation, and the FHIRPath functions matches(), matchesFull(), and replaceMatches() pass user-controlled regular expressions to Java's Pattern.compile() and String.replaceAll() through an incomplete timeout utility. An attacker can send a resource containing an evil regex pattern that causes catastrophic backtracking, exhausting CPU resources and causing denial of service in the FHIR Validator HTTP endpoint and affected org.hl7.fhir.* modules. This issue is fixed in versions 6.9.9 and 6.9.4.2.

Record
CVE-2026-49485
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-1333, CWE-400
Updated
2026-11-02
OSVGHSA-7cmj-v6x8-frvv 7.5

org.hl7.fhir.core: ReDoS via FHIRPath matches()/replaceMatches() in FHIR Validator HTTP Endpoint

Summary

All implementations of FHIRPathEngine accept arbitrary FHIRPath expressions and evaluate them without input validation. The utility intended to secure this evaluation did so incorrectly, and did not fully cover all places in which evaluation was being done. An attacker can send a resource containing an evil regex pattern that causes catastrophic backtracking, exhausting system resources, and causing Denial-of-Service.

Details

The vulnerability exists in regex execution in FHIRPathEngine implementations across multiple code modules. The FHIRPath functions matches(), matchesFull(), and replaceMatches() pass user-controlled regular expressions to Java's Pattern.compile() and String.replaceAll() through a utility class designed to time out after a specified interval. That utility correctly cancelled a single executor thread and returned with an exception, but the execution within the thread had no means to listen for this cancellation and would persist. Furthermore, three modules contained method calls in FHIRPathEngine that were not protected by this utility class.

Why this is exploitable:

Java's Pattern.compile() with a pattern like (a+)+$ against input "aaaaaaaaaaaaaaaaaaaaaa!" causes exponential backtracking (O(2^n) time complexity).

Impact

CPU Exhaustion: The exponential backtracking in Java's regex engine consumes 100% of a CPU core for the duration of the hang (effectively infinite for sufficiently long input strings) for callers of FHIRPathEngine.

Record
GHSA-7cmj-v6x8-frvv
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-1333, CWE-400
Updated
2026-11-02
OSVROOT-APP-MAVEN-CVE-2026-49485 No score

CVE-2026-49485 in ca.uhn.hapi.fhir:org.hl7.fhir.validation - Patched by Root

Root has patched CVE-2026-49485 in the ca.uhn.hapi.fhir:org.hl7.fhir.validation package for Root:Maven. Multiple fixed versions available.

Record
ROOT-APP-MAVEN-CVE-2026-49485
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
ca.uhn.hapi.fhir:org.hl7.fhir.dstu2
Maven
6.9.5 up to 6.9.9
6.9.9
ca.uhn.hapi.fhir:org.hl7.fhir.dstu2016may
Maven
6.9.5 up to 6.9.9
6.9.9
ca.uhn.hapi.fhir:org.hl7.fhir.dstu3
Maven
6.9.5 up to 6.9.9
6.9.9
ca.uhn.hapi.fhir:org.hl7.fhir.r4
Maven
6.9.5 up to 6.9.9
6.9.9
ca.uhn.hapi.fhir:org.hl7.fhir.r4b
Maven
6.9.5 up to 6.9.9
6.9.9
ca.uhn.hapi.fhir:org.hl7.fhir.r5
Maven
6.9.5 up to 6.9.9
6.9.9
ca.uhn.hapi.fhir:org.hl7.fhir.validation
Maven
6.9.5 up to 6.9.9
6.9.9
ca.uhn.hapi.fhir:org.hl7.fhir.validation.cli
Maven
6.9.5 up to 6.9.9
6.9.9
ca.uhn.hapi.fhir:org.hl7.fhir.dstu2
Maven
before 6.9.4.2
6.9.4.2
ca.uhn.hapi.fhir:org.hl7.fhir.dstu2016may
Maven
before 6.9.4.2
6.9.4.2
Show 35 moreShow less
Affected packages
PackageAffectedFixed
ca.uhn.hapi.fhir:org.hl7.fhir.dstu3
Maven
before 6.9.4.2
6.9.4.2
ca.uhn.hapi.fhir:org.hl7.fhir.r4
Maven
before 6.9.4.2
6.9.4.2
ca.uhn.hapi.fhir:org.hl7.fhir.r4b
Maven
before 6.9.4.2
6.9.4.2
ca.uhn.hapi.fhir:org.hl7.fhir.r5
Maven
before 6.9.4.2
6.9.4.2
ca.uhn.hapi.fhir:org.hl7.fhir.validation
Maven
before 6.9.4.2
6.9.4.2
ca.uhn.hapi.fhir:org.hl7.fhir.validation.cli
Maven
before 6.9.4.2
6.9.4.2
ca.uhn.hapi.fhir:org.hl7.fhir.dstu2
Maven
6.9.5 up to 6.9.9, plus listed versions
6.9.66.9.76.9.8
6.9.9
ca.uhn.hapi.fhir:org.hl7.fhir.dstu2016may
Maven
6.9.5 up to 6.9.9, plus listed versions
6.9.66.9.76.9.8
6.9.9
ca.uhn.hapi.fhir:org.hl7.fhir.dstu3
Maven
6.9.5 up to 6.9.9, plus listed versions
6.9.66.9.76.9.8
6.9.9
ca.uhn.hapi.fhir:org.hl7.fhir.r4
Maven
6.9.5 up to 6.9.9, plus listed versions
6.9.66.9.76.9.8
6.9.9
ca.uhn.hapi.fhir:org.hl7.fhir.r4b
Maven
6.9.5 up to 6.9.9, plus listed versions
6.9.66.9.76.9.8
6.9.9
ca.uhn.hapi.fhir:org.hl7.fhir.r5
Maven
6.9.5 up to 6.9.9, plus listed versions
6.9.66.9.76.9.8
6.9.9
ca.uhn.hapi.fhir:org.hl7.fhir.validation
Maven
6.9.5 up to 6.9.9, plus listed versions
6.9.66.9.76.9.8
6.9.9
ca.uhn.hapi.fhir:org.hl7.fhir.dstu2
Maven
before 6.9.4.2, plus listed versions
0.0.10.0.140.0.20.1.181.0.0
Show 45 moreShow less
1.1.674.0.04.0.14.0.24.0.34.1.04.2.05.0.05.0.105.0.115.0.125.0.135.0.145.0.155.0.165.0.175.0.185.0.195.0.205.0.215.0.225.0.75.0.85.0.95.1.05.1.15.1.105.1.115.1.125.1.135.1.145.1.155.1.165.1.175.1.185.1.195.1.25.1.205.1.215.1.225.1.35.1.45.1.55.1.65.1.7
6.9.4.2
ca.uhn.hapi.fhir:org.hl7.fhir.dstu2016may
Maven
before 6.9.4.2, plus listed versions
0.0.10.0.140.0.20.1.181.0.0
Show 45 moreShow less
1.1.674.0.04.0.14.0.24.0.34.1.04.2.05.0.05.0.105.0.115.0.125.0.135.0.145.0.155.0.165.0.175.0.185.0.195.0.205.0.215.0.225.0.75.0.85.0.95.1.05.1.15.1.105.1.115.1.125.1.135.1.145.1.155.1.165.1.175.1.185.1.195.1.25.1.205.1.215.1.225.1.35.1.45.1.55.1.65.1.7
6.9.4.2
ca.uhn.hapi.fhir:org.hl7.fhir.dstu3
Maven
before 6.9.4.2, plus listed versions
0.0.10.0.140.0.20.1.181.0.0
Show 45 moreShow less
1.1.674.0.04.0.14.0.24.0.34.1.04.2.05.0.05.0.105.0.115.0.125.0.135.0.145.0.155.0.165.0.175.0.185.0.195.0.205.0.215.0.225.0.75.0.85.0.95.1.05.1.15.1.105.1.115.1.125.1.135.1.145.1.155.1.165.1.175.1.185.1.195.1.25.1.205.1.215.1.225.1.35.1.45.1.55.1.65.1.7
6.9.4.2
ca.uhn.hapi.fhir:org.hl7.fhir.r4
Maven
before 6.9.4.2, plus listed versions
0.0.10.0.140.0.20.1.181.0.0
Show 45 moreShow less
1.1.674.0.04.0.14.0.24.0.34.1.04.2.05.0.05.0.105.0.115.0.125.0.135.0.145.0.155.0.165.0.175.0.185.0.195.0.205.0.215.0.225.0.75.0.85.0.95.1.05.1.15.1.105.1.115.1.125.1.135.1.145.1.155.1.165.1.175.1.185.1.195.1.25.1.205.1.215.1.225.1.35.1.45.1.55.1.65.1.7
6.9.4.2
ca.uhn.hapi.fhir:org.hl7.fhir.r4b
Maven
before 6.9.4.2, plus listed versions
5.6.1005.6.1015.6.1025.6.1035.6.104
Show 45 moreShow less
5.6.1055.6.1065.6.1075.6.1085.6.1095.6.1105.6.1115.6.1125.6.1135.6.1145.6.1155.6.1165.6.1175.6.225.6.235.6.245.6.255.6.265.6.275.6.285.6.295.6.305.6.315.6.325.6.335.6.345.6.355.6.365.6.375.6.385.6.395.6.405.6.415.6.425.6.435.6.445.6.455.6.465.6.475.6.485.6.505.6.515.6.525.6.535.6.54
6.9.4.2
ca.uhn.hapi.fhir:org.hl7.fhir.r5
Maven
before 6.9.4.2, plus listed versions
0.0.10.0.140.0.20.1.181.0.0
Show 45 moreShow less
1.1.674.0.04.0.14.0.24.0.34.1.04.2.05.0.05.0.105.0.115.0.125.0.135.0.145.0.155.0.165.0.175.0.185.0.195.0.205.0.215.0.225.0.75.0.85.0.95.1.05.1.15.1.105.1.115.1.125.1.135.1.145.1.155.1.165.1.175.1.185.1.195.1.25.1.205.1.215.1.225.1.35.1.45.1.55.1.65.1.7
6.9.4.2
ca.uhn.hapi.fhir:org.hl7.fhir.validation
Maven
before 6.9.4.2, plus listed versions
0.0.10.0.140.0.20.1.181.0.0
Show 45 moreShow less
1.1.674.0.04.0.14.0.24.0.34.1.04.2.05.0.05.0.105.0.115.0.125.0.135.0.145.0.155.0.165.0.175.0.185.0.195.0.205.0.215.0.225.0.75.0.85.0.95.1.05.1.15.1.105.1.115.1.125.1.135.1.145.1.155.1.165.1.175.1.185.1.195.1.25.1.205.1.215.1.225.1.35.1.45.1.55.1.65.1.7
6.9.4.2
ca.uhn.hapi.fhir:org.hl7.fhir.validation.cli
Maven
before 6.9.4.2, plus listed versions
4.0.04.0.14.0.24.0.34.1.04.2.05.0.0
6.9.4.2
ca.uhn.hapi.fhir:org.hl7.fhir.validation
Root:Maven
before 6.7.9-aikido.10
6.7.9-aikido.106.7.9-aikido.96.9.0-aikido.106.9.4.1-aikido.36.9.0-aikido.116.4.0-aikido.26.9.4.1-aikido.26.0.1-aikido.26.0.1-aikido.36.0.1-aikido.4
ca.uhn.hapi.fhir:org.hl7.fhir.dstu2
Root:Maven
before 6.7.9-aikido.10
6.7.9-aikido.106.7.9-aikido.96.9.0-aikido.106.9.4.1-aikido.36.5.27-aikido.16.4.0-aikido.26.9.4.1-aikido.26.0.1-aikido.26.9.0-aikido.116.0.1-aikido.36.0.1-aikido.4
ca.uhn.hapi.fhir:org.hl7.fhir.dstu2016may
Root:Maven
before 6.7.9-aikido.10
6.7.9-aikido.106.7.9-aikido.96.9.0-aikido.106.9.4.1-aikido.36.4.0-aikido.26.9.4.1-aikido.26.0.1-aikido.26.9.0-aikido.116.0.1-aikido.36.0.1-aikido.4
ca.uhn.hapi.fhir:org.hl7.fhir.r5
Root:Maven
before 6.7.9-aikido.10
6.7.9-aikido.106.7.9-aikido.96.9.0-aikido.106.9.4.1-aikido.36.4.0-aikido.26.9.4.1-aikido.26.0.1-aikido.26.9.0-aikido.116.0.1-aikido.36.0.1-aikido.4
ca.uhn.hapi.fhir:org.hl7.fhir.dstu3
Root:Maven
before 6.7.9-aikido.10
6.7.9-aikido.106.7.9-aikido.96.9.0-aikido.106.9.4.1-aikido.36.9.0-aikido.116.5.27-aikido.16.4.0-aikido.26.9.4.1-aikido.26.0.1-aikido.26.0.1-aikido.36.0.1-aikido.4
ca.uhn.hapi.fhir:org.hl7.fhir.r4
Root:Maven
before 6.7.9-aikido.10
6.7.9-aikido.106.7.9-aikido.96.9.0-aikido.106.9.4.1-aikido.36.4.0-aikido.26.9.4.1-aikido.26.0.1-aikido.26.9.0-aikido.116.0.1-aikido.36.0.1-aikido.4
ca.uhn.hapi.fhir:org.hl7.fhir.r4b
Root:Maven
before 6.7.9-aikido.10
6.7.9-aikido.106.7.9-aikido.96.9.0-aikido.106.9.4.1-aikido.36.5.27-aikido.16.4.0-aikido.26.9.4.1-aikido.26.0.1-aikido.26.9.0-aikido.116.0.1-aikido.36.0.1-aikido.4
io.root.ca.uhn.hapi.fhir:org.hl7.fhir.validation
Root:Maven
before 6.7.9-root.io.10
6.7.9-root.io.106.7.9-root.io.96.9.0-root.io.106.9.4.1-root.io.36.9.0-root.io.116.4.0-root.io.26.9.4.1-root.io.26.0.1-root.io.26.0.1-root.io.36.0.1-root.io.4
io.root.ca.uhn.hapi.fhir:org.hl7.fhir.dstu2
Root:Maven
before 6.7.9-root.io.10
6.7.9-root.io.106.7.9-root.io.96.9.0-root.io.106.9.4.1-root.io.36.9.0-root.io.116.5.27-root.io.16.4.0-root.io.26.9.4.1-root.io.26.0.1-root.io.26.0.1-root.io.36.0.1-root.io.4
io.root.ca.uhn.hapi.fhir:org.hl7.fhir.dstu2016may
Root:Maven
before 6.7.9-root.io.10
6.7.9-root.io.106.7.9-root.io.96.9.0-root.io.106.9.4.1-root.io.36.9.0-root.io.116.4.0-root.io.26.9.4.1-root.io.26.0.1-root.io.26.0.1-root.io.36.0.1-root.io.4
io.root.ca.uhn.hapi.fhir:org.hl7.fhir.r5
Root:Maven
before 6.7.9-root.io.10
6.7.9-root.io.106.7.9-root.io.96.9.0-root.io.106.9.4.1-root.io.36.9.0-root.io.116.4.0-root.io.26.9.4.1-root.io.26.0.1-root.io.26.0.1-root.io.36.0.1-root.io.4
io.root.ca.uhn.hapi.fhir:org.hl7.fhir.dstu3
Root:Maven
before 6.7.9-root.io.10
6.7.9-root.io.106.7.9-root.io.96.9.0-root.io.106.9.4.1-root.io.36.9.0-root.io.116.5.27-root.io.16.4.0-root.io.26.9.4.1-root.io.26.0.1-root.io.26.0.1-root.io.36.0.1-root.io.4
io.root.ca.uhn.hapi.fhir:org.hl7.fhir.r4
Root:Maven
before 6.7.9-root.io.10
6.7.9-root.io.106.7.9-root.io.96.9.0-root.io.106.9.4.1-root.io.36.9.0-root.io.116.4.0-root.io.26.9.4.1-root.io.26.0.1-root.io.26.0.1-root.io.36.0.1-root.io.4
io.root.ca.uhn.hapi.fhir:org.hl7.fhir.r4b
Root:Maven
before 6.7.9-root.io.10
6.7.9-root.io.106.7.9-root.io.96.9.0-root.io.106.9.4.1-root.io.36.9.0-root.io.116.5.27-root.io.16.4.0-root.io.26.9.4.1-root.io.26.0.1-root.io.26.0.1-root.io.36.0.1-root.io.4

History

History
RecordedChangedSources
aliasesEUVD
first indexedCVE List, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2026-49485 is a high vulnerability (CVSS 7.5) in Hapifhir Org.hl7.fhir.core, published July 9, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.68%, the 52nd percentile. Fixed in ca.uhn.hapi.fhir:org.hl7.fhir.dstu2 6.9.9.

References

Show 4 moreShow less
This page doesn't list everything

Left out here: 2,218 versions. The JSON record has them.

MoveEnter Open