CVE-2026-41258
| Severity | 9.1 Critical CVSS 3.1 |
|---|---|
| Fixed in | 2.7.9, 2.8.6 |
| Weakness | Code injection (CWE-94) |
| Published | 15 May 2026 |
| Updated | 26 Oct 2026 |
Description
OpenMRS is an open source electronic medical record system platform. From 2.7.0 to before 2.7.9 and 2.8.6, the ConceptReferenceRangeUtility.evaluateCriteria() method in OpenMRS Core evaluates database-stored criteria strings as Apache Velocity templates without any sandbox configuration. The VelocityEngine is initialized with only logging properties and noSecureUberspector, leaving the default UberspectImpl in place, which allows unrestricted Java reflection through template expressions. A user with the Manage Concepts privilege can store a malicious Velocity template expression in a concept's reference range criteria field. This payload is then executed automatically whenever a user or API call validates an observation against the affected concept. The Velocity context exposes $patient (the Person / Patient object), $obs (the Obs object), and $fn (the ConceptReferenceRangeUtility instance with access to the full OpenMRS service layer). This vulnerability is fixed in 2.7.9 and 2.8.6.
Exploitation status
No public exploit
No exploit has been reported in the sources we check.
Exploitation status
- CISA KEV not listed
- VulnCheck KEV not listed
- CISA Vulnrichment exploitation: none
- Indexed PoC none indexed
- EPSS 0.32% chance in 30 days
Waratek protection
Within Waratek scope. In the sources we check, nobody has published exploit code for this CVE or reported it being exploited.
A public code fix exists: openmrs/openmrs-core 8d1c193.
- Protection none
- Action unverified
- Review automated Upstream data
- Record active
| Decided by | Exploit code for this candidate, published in a reviewed catalogue or a GitHub repository with 5 or more stars, or in use per CISA or VulnCheck; not only a CISA verdict, a forecast, or nothing at all |
|---|---|
| Finding | This CVE is not listed in CISA KEV or VulnCheck KEV, CISA Vulnrichment records no active exploitation, no reviewed exploit catalogue carries an entry for it, and no GitHub PoC repository for it has 5 or more stars. Nobody has published exploit code worth tracing, so it is not a candidate for a rule ahead of the ones where somebody has; an upstream fix path does exist, so the remediation half of the candidacy still holds. This is a statement about what has been published, not about whether the defect is reachable or serious. |
| Candidate fix | https://github.com/openmrs/openmrs-core/security/advisories/GHSA-xj4f-8jjg-vx4q : the maintainers' own security advisory: names the version that fixes it, so the fix is the difference between two releases |
Affected software and releases
Maven packages
Affected and fixed versions, from OSV.dev| Package | Introduced | Fixed | Last affected |
|---|---|---|---|
org.openmrs.api:openmrs-api |
2.7.0 | 2.7.9 |
unbounded |
org.openmrs.api:openmrs-api |
2.8.0 | 2.8.6 |
unbounded |
Products and versions
1 product, 2 version entries| Source | Vendor | Product | Scheme | Affected versions |
|---|---|---|---|---|
| osv | org.openmrs.api | openmrs-api | generic | ≥ 2.7.0 and < 2.7.9 · ≥ 2.8.0 and < 2.8.6 |
References
Timeline
Timeline
| Published | 2026-05-15 | By the CVE Program. |
|---|---|---|
| NVD record modified | 2026-10-26 | NVD's own last-modified date for this record. |