OpenEMR's Portal Payment Endpoint Trusts User-Controlled pid
Default status is the baseline for the product, each version can override it (e.g. patched versions marked unaffected).
| Vendor | Product | Default status | Versions | ||||||
|---|---|---|---|---|---|---|---|---|---|
| openemr | openemr | affected |
|
No data.
| Vendor | Product | Versions | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Openemr | Openemr |
|
No CVSS v4.0
No CVSS v3.0
No CVSS v2
This CVE is not in the KEV list.
Exploit prediction score: < 1% (0.251% probability within 30 days)
| Type | Values Removed | Values Added |
|---|---|---|
| First Time appeared |
Open-emr
Open-emr openemr |
|
| CPEs | cpe:2.3:a:open-emr:openemr:*:*:*:*:*:*:*:* | |
| Vendors & Products |
Open-emr
Open-emr openemr |
| Type | Values Removed | Values Added |
|---|---|---|
| First Time appeared |
Openemr
Openemr openemr |
|
| Vendors & Products |
Openemr
Openemr openemr |
| Type | Values Removed | Values Added |
|---|---|---|
| Metrics |
ssvc
|
| Type | Values Removed | Values Added |
|---|---|---|
| Description | OpenEMR is a free and open source electronic health records and medical practice management application. Prior to version 8.0.0, in `portal/portal_payment.php`, the patient id used for the page is taken from the request (`$pid = $_REQUEST['pid'] ?? $pid` and `$pid = ($_REQUEST['hidden_patient_code'] ?? null) > 0 ? $_REQUEST['hidden_patient_code'] : $pid`) instead of being fixed to the authenticated portal user. The portal session already has a valid `$pid` for the logged-in patient. Overwriting it with user-supplied values and using it without authorization allows a portal user to view and interact with another patient's demographics, invoices, and payment history—horizontal privilege escalation and IDOR. Version 8.0.0 contains a fix for the issue. | |
| Title | OpenEMR's Portal Payment Endpoint Trusts User-Controlled pid | |
| Weaknesses | CWE-639 | |
| References |
| |
| Metrics |
cvssV3_1
|