---
id: "CVE-2026-104134"
kind: "vulnerability"
aliases: ["CVE-2026-104134"]
title: "OpenEMR: missing access check lets low-privilege users read patient records"
severity: "medium"
cvss: 6.5
epss: null
exploited: false
status: "open"
category: "runtime"
products: []
ecosystems: []
tags: ["healthcare", "openemr", "php", "runtime", "self-hosted"]
not_affected_if: ["no-user-accounts", "version-8.3.0-or-later"]
published_at: "2026-11-05T20:17:38+00:00"
first_seen_at: "2026-11-05T20:40:43+00:00"
updated_at: "2026-11-05T20:43:22+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-104134", "first_seen_at": "2026-11-05T20:40:43+00:00"}]
exploit_sources: []
---

# OpenEMR: missing access check lets low-privilege users read patient records

OpenEMR, an electronic health records application, has an endpoint that searches the person and patient tables without checking the user's permissions. A logged-in low-privilege user can enumerate names and receive patients' names, dates of birth, gender, phone numbers and email addresses.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Check the OpenEMR version in the installation; versions before `8.3.0` are affected.
- Look for `library/ajax/person_search_ajax.php` in the installed application and confirm whether it performs an AclMain authorization check.

## Fix

- Upgrade OpenEMR to `8.3.0` or later.

## Timeline

- 2026-11-05T20:40:43+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-104134

## Documents

- [advisory] Vendor advisory: github.com https://github.com/openemr/openemr/security/advisories/GHSA-xhfm-5pwg-3cxv
- [fix] Patch: github.com https://github.com/openemr/openemr/commit/7973cab3fe3f2fd2374ed71c02605e3c93491c36
- [fix] Release notes: github.com https://github.com/openemr/openemr/releases/tag/v8_3_0

## From the sources

OpenEMR is a free and open source electronic health records and medical practice management application. Prior to 8.3.0, the search_persons action in library/ajax/person_search_ajax.php validates CSRF but does not perform an AclMain authorization check before searching the person and patient_data tables. A low-privilege authenticated user can iterate name prefixes and receive patient first and last names, dates of birth, gender, phone numbers, and email addresses in JSON responses. This issue is fixed in version 8.3.0.

---

_Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai_
