GHSA-vpxm-cr3r-pjp9 General OpenMRS Security Advisory, January 2025: Penetration Testing Results and Patches
Attackers can exploit stored XSS and broken access control in OpenMRS to steal data or take over accounts, requiring immediate module upgrades.
- Exploited in the wild
- Not known
- Login needed
- Any signed-in user
- Attackable
- Over the internet
- Victim action needed
- A user has to click or open something
- Fix
- Available
What is GHSA-vpxm-cr3r-pjp9?
GHSA-vpxm-cr3r-pjp9 is a cross-site scripting vulnerability in org.openmrs.module:addresshierarchy, published on 30 Jan 2025. Any signed-in user can exploit it over the network, and only if a user opens a file or follows a link.
Official description
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 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 also includes the fixes. Release Notes and more download options here.
- 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 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)
- ID Gen OMOD 4.14.0+ (here)
- Address Hierarchy OMOD 2.19.0+ (here)
- Attachments OMOD 3.6.0+ (here)
- Patient Flags OMOD 3.0.8+ (here)
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.
Which versions are affected by GHSA-vpxm-cr3r-pjp9?
12 open source packages ship an affected version, including org.openmrs.module:addresshierarchy, org.openmrs.module:attachments and org.openmrs.module:idgen.
| Package | Affected | Fixed in |
|---|---|---|
org.openmrs.module:addresshierarchy Maven | All versions | 2.19.0 |
org.openmrs.module:addresshierarchy Maven | All versions | 2.19.0 |
org.openmrs.module:attachments Maven | All versions | 3.6.0 |
org.openmrs.module:attachments Maven | All versions | 3.6.0 |
org.openmrs.module:idgen Maven | All versions | 4.14.0 |
org.openmrs.module:idgen Maven | All versions | 4.14.0 |
6 more packages
org.openmrs.module:legacyui Maven | All versions | 1.21.0 |
org.openmrs.module:legacyui Maven | All versions | 1.21.0 |
org.openmrs.module:patientflags Maven | All versions | 3.0.8 |
org.openmrs.module:patientflags Maven | All versions | 3.0.8 |
org.openmrs:openmrs Maven | All versions | 2.6.11 |
org.openmrs:openmrs Maven | All versions | 2.6.11 |
How do I fix GHSA-vpxm-cr3r-pjp9?
Upgrade org.openmrs.module:addresshierarchy to 2.19.0 or later.
Escape output for the context it lands in and set a strict Content Security Policy. Upgrading the affected component is the real fix. More about Cross-site scripting.
Is GHSA-vpxm-cr3r-pjp9 being exploited?
There is no known exploitation of GHSA-vpxm-cr3r-pjp9 in the wild and no public exploit code.