GHSA-vpxm-cr3r-pjp9: Openmrs Penetration Testing Results And Patches Vulnerability

CRITICAL
Advisory Summary

GHSA-vpxm-cr3r-pjp9 is a CRITICAL penetration testing results and patches vulnerability (CWE-284: Improper Access Control) affecting Openmrs libraries in the Maven ecosystem. The issue involves penetration testing results and patches. Remediation is available by upgrading affected packages to version 2.6.11, 1.21.0, 4.14.0, 2.19.0, 3.6.0, 3.0.8.

GHSA-vpxm-cr3r-pjp9 at a Glance

CVE Identifier N/A
GHSA Identifier GHSA-vpxm-cr3r-pjp9
Severity CRITICAL
CVSS v3.1 Base Score N/A
CWE Classification CWE-284: Improper Access Control
Affected Product Openmrs
Package Ecosystem Maven
Published Date
Last Updated

How to Fix GHSA-vpxm-cr3r-pjp9

To remediate this vulnerability, upgrade all affected Openmrs dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.

org.openmrs:openmrs fixed: 2.6.11
<dependency>
    <groupId>org.openmrs</groupId>
    <artifactId>openmrs</artifactId>
    <version>2.6.11</version>
</dependency>
org.openmrs.module:legacyui fixed: 1.21.0
<dependency>
    <groupId>org.openmrs.module</groupId>
    <artifactId>legacyui</artifactId>
    <version>1.21.0</version>
</dependency>
org.openmrs.module:idgen fixed: 4.14.0
<dependency>
    <groupId>org.openmrs.module</groupId>
    <artifactId>idgen</artifactId>
    <version>4.14.0</version>
</dependency>
org.openmrs.module:addresshierarchy fixed: 2.19.0
<dependency>
    <groupId>org.openmrs.module</groupId>
    <artifactId>addresshierarchy</artifactId>
    <version>2.19.0</version>
</dependency>
org.openmrs.module:attachments fixed: 3.6.0
<dependency>
    <groupId>org.openmrs.module</groupId>
    <artifactId>attachments</artifactId>
    <version>3.6.0</version>
</dependency>
org.openmrs.module:patientflags fixed: 3.0.8
<dependency>
    <groupId>org.openmrs.module</groupId>
    <artifactId>patientflags</artifactId>
    <version>3.0.8</version>
</dependency>
Verify Direct and Transitive Dependencies

Run the following command in your project directory to verify that all resolved dependencies use the patched release:

mvn dependency:tree -Dincludes=org.openmrs

How to Check if You Are Affected

To determine whether your Java application is affected by GHSA-vpxm-cr3r-pjp9, inspect your build dependencies using the Maven Dependency Plugin:

mvn dependency:tree -Dincludes=org.openmrs

Analyze the terminal output to locate any version of Openmrs in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than 2.6.11), your application is affected.

Note: The mvn dependency:tree -Dincludes=org.openmrs command inspects the resolved dependency graph declared in your project's POM files; it does not perform automated security scanning or inspect runtime dynamic classpaths. Always verify runtime container classpaths and shaded JARs.

Technical Details

Vulnerability Mechanism & Technical Analysis

This vulnerability is classified under CWE-284: Improper Access Control, where the product does not restrict or incorrectly restricts access to a resource from an unauthorized actor. In Openmrs, software state validation or input boundaries are circumvented during processing. Review the official source advisory statement below for specific affected components, classes, and reproduction details.

Source Advisory Statement

### Impact We recently underwent Penetration Testing of OpenMRS by a third-party company. **Vulnerabilities were found, and fixes have been made and released.** We've released security updates that include critical fixes, and so, we strongly recommend upgrading affected modules. **This notice applies to _all_ OpenMRS instances.** The testers used the OpenMRS v3 Reference Application (O3 RefApp); however, their findings highlighted modules commonly used in older OpenMRS applications, including the O2 RefApp. ## Vulnerability Details - The issues uncovered included broken access control (e.g. inappropriate admin access), phishing vulnerability, and stored XSS (e.g. vulnerable passwords). - No vulnerabilities were found in the O3 frontend esm modules. - The Letter of Attestation from the penetration test is [available here](https://drive.google.com/file/d/1sBm4-FzLA8hSoM9wYknBfgEttBHyLvoU/view?usp=sharing) for your reference. - After the fixes were applied, the OpenMRS O3 RefApp met a Security Level of “Excellent, Grade A”. - The full detailed Remediation Pentest Report is available to Implementation Technical Leads upon request. ### Patches **Minimum Requirements for Implementers:** We **strongly** recommend upgrading your modules to the following versions (or greater) as soon as possible. **This is the minimum amount to do and be protected from the vulnerabilities found and fixed.** The following versions contain the patch: - **Platform** 2.6.11+ - How: Increase your platform version number wherever this is specified in your implementation. If you use the OpenMRS SDK, this will be in the distro.properties file. - Notes: - The newly released [**Platform 2.7**](https://sourceforge.net/projects/openmrs/files/releases/OpenMRS_Platform_2.7.0/) also includes the fixes. [Release Notes and more download options here](https://openmrs.atlassian.net/wiki/x/XoBzEQ). - Platform 2.6.8+ has most of the fixes, but these are broken if you don't use SSL, so Platform 2.6.11 or higher is preferred. - For those still on Platform 2.5+ such as the Bahmni ecosystem, the new [2.5.14](https://ci.openmrs.org/browse/TRUNK-CORE2-232) release includes the patch. _Bahmni note: The upcoming patch release for both Bahmni Lite and Bahmni Standard will incorporate these security fixes._ - **Legacy UI** OMOD 1.21.0+ ([here](https://addons.openmrs.org/show/org.openmrs.module.legacyui)) - **ID Gen** OMOD 4.14.0+ ([here](https://addons.openmrs.org/show/org.openmrs.module.idgen)) - **Address Hierarchy** OMOD 2.19.0+ ([here](https://addons.openmrs.org/show/org.openmrs.module.addresshierarchy)) - **Attachments** OMOD 3.6.0+ ([here](https://addons.openmrs.org/show/org.openmrs.module.attachments)) - **Patient Flags** OMOD 3.0.8+ ([here](https://addons.openmrs.org/show/org.openmrs.module.patientflags)) ### Workarounds There are no practical workarounds to fix or remediate the vulnerabilities without upgrading. Technically, you could remove the affected OMODs, but this would badly degrade the system's functionality. ## Thank you to our amazing Security contributors! Thank you to security firm UnderDefense, and to the OpenMRS Security Group contributors for their patch support - specific thanks to Daniel Kayiwa, Samuel Lubwama, Ian Bacher, Rafal Korytkowski, and Michael Seaton.

GHSA-vpxm-cr3r-pjp9 Affected Openmrs Versions

6 component(s)
Fixed Versions:
2.6.111.21.04.14.02.19.03.6.03.0.8
Product / Package Ecosystem Affected Versions Fixed Version
org.openmrs:openmrs
Maven
< 2.6.11
2.6.11
org.openmrs.module:legacyui
Maven
< 1.21.0
1.21.0
org.openmrs.module:idgen
Maven
< 4.14.0
4.14.0
org.openmrs.module:addresshierarchy
Maven
< 2.19.0
2.19.0
org.openmrs.module:attachments
Maven
< 3.6.0
3.6.0
org.openmrs.module:patientflags
Maven
< 3.0.8
3.0.8

References

Frequently Asked Questions

What is GHSA-vpxm-cr3r-pjp9?
GHSA-vpxm-cr3r-pjp9 is a security vulnerability in Openmrs involving Penetration Testing Results and Patches under CWE-284: Improper Access Control.
Which Openmrs versions are affected?
Affected versions include releases prior to 2.6.11, 1.21.0, 4.14.0, 2.19.0, 3.6.0, 3.0.8 across affected packages: org.openmrs:openmrs, org.openmrs.module:legacyui, org.openmrs.module:idgen, org.openmrs.module:addresshierarchy, org.openmrs.module:attachments, org.openmrs.module:patientflags.
What version fixes GHSA-vpxm-cr3r-pjp9?
Upgrading to 2.6.11, 1.21.0, 4.14.0, 2.19.0, 3.6.0, 3.0.8 (or the latest patched release for your respective branch) resolves the vulnerability.
Is openmrs affected?
Yes, org.openmrs:openmrs is affected in releases prior to 2.6.11. Upgrade your dependency to 2.6.11 or later.
Is legacyui affected?
Yes, org.openmrs.module:legacyui is affected in releases prior to 1.21.0. Upgrade your dependency to 1.21.0 or later.
What CWE is associated with GHSA-vpxm-cr3r-pjp9?
GHSA-vpxm-cr3r-pjp9 is classified under CWE-284: Improper Access Control (The product does not restrict or incorrectly restricts access to a resource from an unauthorized actor.).
How can I check Maven dependencies for GHSA-vpxm-cr3r-pjp9?
Run the dependency tree command: 'mvn dependency:tree -Dincludes=org.openmrs'. This command lists direct and transitive dependencies in your build configuration so you can verify if a vulnerable version is resolved.
Machine-readable OSV JSON OSV v1.5 Schema
Normalized schema output
{
  "schema_version" : "1.4.0",
  "id" : "GHSA-vpxm-cr3r-pjp9",
  "modified" : "2025-01-30T17:50:52Z",
  "published" : "2025-01-30T17:50:52Z",
  "aliases" : [ ],
  "summary" : "General OpenMRS Security Advisory, January 2025: Penetration Testing Results and Patches",
  "details" : "### Impact\nWe recently underwent Penetration Testing of OpenMRS by a third-party company. **Vulnerabilities were found, and fixes have been made and released.** We've released security updates that include critical fixes, and so, we strongly recommend upgrading affected modules.\n\n**This notice applies to _all_ OpenMRS instances.** The testers used the OpenMRS v3 Reference Application (O3 RefApp); however, their findings highlighted modules commonly used in older OpenMRS applications, including the O2 RefApp. \n\n## Vulnerability Details\n- The issues uncovered included broken access control (e.g. inappropriate admin access), phishing vulnerability, and stored XSS (e.g. vulnerable passwords).\n- No vulnerabilities were found in the O3 frontend esm modules. \n- The Letter of Attestation from the penetration test is [available here](https://drive.google.com/file/d/1sBm4-FzLA8hSoM9wYknBfgEttBHyLvoU/view?usp=sharing) for your reference. \n- After the fixes were applied, the OpenMRS O3 RefApp met a Security Level of “Excellent, Grade A”.\n- The full detailed Remediation Pentest Report is available to Implementation Technical Leads upon request.\n\n### Patches\n**Minimum Requirements for Implementers:** We **strongly** recommend upgrading your modules to the following versions (or greater) as soon as possible. **This is the minimum amount to do and be protected from the vulnerabilities found and fixed.** The following versions contain the patch: \n\n- **Platform** 2.6.11+ \n  - How: Increase your platform version number wherever this is specified in your implementation. If you use the OpenMRS SDK, this will be in the distro.properties file.\n  - Notes: \n    - The newly released [**Platform 2.7**](https://sourceforge.net/projects/openmrs/files/releases/OpenMRS_Platform_2.7.0/) also includes the fixes. [Release Notes and more download options here](https://openmrs.atlassian.net/wiki/x/XoBzEQ).\n    - Platform 2.6.8+ has most of the fixes, but these are broken if you don't use SSL, so Platform 2.6.11 or higher is preferred.\n    - For those still on Platform 2.5+ such as the Bahmni ecosystem, the new [2.5.14](https://ci.openmrs.org/browse/TRUNK-CORE2-232) release includes the patch. _Bahmni note: The upcoming patch release for both Bahmni Lite and Bahmni Standard will incorporate these security fixes._\n- **Legacy UI** OMOD 1.21.0+ ([here](https://addons.openmrs.org/show/org.openmrs.module.legacyui))\n- **ID Gen** OMOD 4.14.0+ ([here](https://addons.openmrs.org/show/org.openmrs.module.idgen))\n- **Address Hierarchy** OMOD 2.19.0+ ([here](https://addons.openmrs.org/show/org.openmrs.module.addresshierarchy))\n- **Attachments** OMOD 3.6.0+ ([here](https://addons.openmrs.org/show/org.openmrs.module.attachments))\n- **Patient Flags** OMOD 3.0.8+ ([here](https://addons.openmrs.org/show/org.openmrs.module.patientflags))\n\n### Workarounds\nThere are no practical workarounds to fix or remediate the vulnerabilities without upgrading. Technically, you could remove the affected OMODs, but this would badly degrade the system's functionality.\n\n## Thank you to our amazing Security contributors!\nThank you to security firm UnderDefense, and to the OpenMRS Security Group contributors for their patch support - specific thanks to Daniel Kayiwa, Samuel Lubwama, Ian Bacher, Rafal Korytkowski, and Michael Seaton. \n",
  "severity" : [ ],
  "affected" : [ {
    "package" : {
      "ecosystem" : "Maven",
      "name" : "org.openmrs:openmrs"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "0"
      }, {
        "fixed" : "2.6.11"
      } ]
    } ]
  }, {
    "package" : {
      "ecosystem" : "Maven",
      "name" : "org.openmrs.module:legacyui"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "0"
      }, {
        "fixed" : "1.21.0"
      } ]
    } ]
  }, {
    "package" : {
      "ecosystem" : "Maven",
      "name" : "org.openmrs.module:idgen"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "0"
      }, {
        "fixed" : "4.14.0"
      } ]
    } ]
  }, {
    "package" : {
      "ecosystem" : "Maven",
      "name" : "org.openmrs.module:addresshierarchy"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "0"
      }, {
        "fixed" : "2.19.0"
      } ]
    } ]
  }, {
    "package" : {
      "ecosystem" : "Maven",
      "name" : "org.openmrs.module:attachments"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "0"
      }, {
        "fixed" : "3.6.0"
      } ]
    } ]
  }, {
    "package" : {
      "ecosystem" : "Maven",
      "name" : "org.openmrs.module:patientflags"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "0"
      }, {
        "fixed" : "3.0.8"
      } ]
    } ]
  } ],
  "references" : [ {
    "type" : "WEB",
    "url" : "https://github.com/openmrs/openmrs-core/security/advisories/GHSA-vpxm-cr3r-pjp9"
  }, {
    "type" : "PACKAGE",
    "url" : "https://github.com/openmrs/openmrs-core"
  } ],
  "database_specific" : {
    "cwe_ids" : [ "CWE-209", "CWE-284", "CWE-601", "CWE-614" ],
    "severity" : "CRITICAL",
    "github_reviewed" : true,
    "github_reviewed_at" : "2025-01-30T17:50:52Z",
    "nvd_published_at" : null
  }
}