CVE-2026-24898

10.0 CRITICAL

📋 TL;DR

OpenEMR versions before 8.0.0 contain an unauthenticated token disclosure vulnerability in the MedEx callback endpoint. Any unauthenticated visitor can obtain the practice's MedEx API tokens, leading to third-party service compromise and potential PHI exfiltration. Healthcare organizations using vulnerable OpenEMR instances are affected.

💻 Affected Systems

Products:
  • OpenEMR
Versions: All versions prior to 8.0.0
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Any OpenEMR installation with MedEx integration enabled is vulnerable. The vulnerability exists in the default callback endpoint configuration.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete compromise of MedEx third-party services, unauthorized access to protected health information (PHI), HIPAA violations, and potential ransomware deployment through the compromised MedEx platform.

🟠

Likely Case

Unauthorized actors obtain MedEx API tokens and use them to access patient data, send unauthorized communications, or disrupt medical communication services.

🟢

If Mitigated

If properly segmented and monitored, impact limited to MedEx service disruption and potential data exposure through that specific third-party platform.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

Exploitation requires only HTTP POST requests to the vulnerable endpoint with a callback_key parameter. No authentication or special tools needed.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 8.0.0

Vendor Advisory: https://github.com/openemr/openemr/security/advisories/GHSA-qwff-3mw7-7rc7

Restart Required: Yes

Instructions:

1. Backup your OpenEMR installation and database. 2. Download OpenEMR 8.0.0 or later from the official repository. 3. Follow the OpenEMR upgrade documentation for your specific version path. 4. Verify the patch by checking that the MedEx callback endpoint now requires proper authentication.

🔧 Temporary Workarounds

Block MedEx Callback Endpoint

all

Temporarily block access to the vulnerable endpoint using web server configuration or firewall rules.

# Apache: RewriteRule ^/interface/modules/zend_modules/public/MedEx/medexcallback.php - [F]
# Nginx: location ~ /interface/modules/zend_modules/public/MedEx/medexcallback.php { deny all; }

Disable MedEx Integration

all

Temporarily disable MedEx integration in OpenEMR configuration.

# Edit OpenEMR configuration to disable MedEx modules

🧯 If You Can't Patch

  • Immediately block external access to the MedEx callback endpoint at the network perimeter or web application firewall.
  • Monitor for unauthorized access attempts to the MedEx callback endpoint and review MedEx API token usage logs.

🔍 How to Verify

Check if Vulnerable:

Send a POST request to /interface/modules/zend_modules/public/MedEx/medexcallback.php with a callback_key parameter. If it returns JSON containing API tokens without authentication, the system is vulnerable.

Check Version:

Check the OpenEMR version in the interface footer or via the database: SELECT * FROM version

Verify Fix Applied:

Attempt the same POST request after patching. It should return an authentication error or no sensitive data.

📡 Detection & Monitoring

Log Indicators:

  • Unusual POST requests to MedEx callback endpoint from external IPs
  • Multiple failed authentication attempts followed by successful MedEx token retrieval

Network Indicators:

  • HTTP POST requests to /interface/modules/zend_modules/public/MedEx/medexcallback.php from unauthorized sources

SIEM Query:

source="web_server_logs" AND uri="/interface/modules/zend_modules/public/MedEx/medexcallback.php" AND method="POST" AND response_code=200

🔗 References

📤 Share & Export