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.
OpenEMR versions prior to 8.0.0 contain an Insecure Direct Object Reference (IDOR) vulnerability in the patient portal payment page that allows authenticated users to access other patients' records by manipulating the patient ID parameter. This horizontal privilege escalation enables unauthorized viewing and interaction with other patients' demographics, invoices, and payment history.
تحتوي نسخ OpenEMR السابقة للإصدار 8.0.0 على ثغرة IDOR في صفحة دفع بوابة المريض حيث يتم أخذ معرف المريض من طلب المستخدم بدلاً من التحقق من هوية المستخدم المصرح. يسمح هذا للمستخدمين المصرحين بالوصول إلى سجلات المرضى الآخرين وعرض البيانات الديموغرافية والفواتير وسجل الدفع.
OpenEMR versions prior to 8.0.0 contain an Insecure Direct Object Reference (IDOR) vulnerability in the patient portal payment page that allows authenticated users to access other patients' records by manipulating the patient ID parameter. This horizontal privilege escalation enables unauthorized viewing and interaction with other patients' demographics, invoices, and payment history.
Upgrade OpenEMR to version 8.0.0 or later immediately. Implement strict server-side validation to ensure authenticated users can only access their own patient records by validating the patient ID against the authenticated session user. Apply input validation and authorization checks on all patient ID parameters in portal_payment.php and similar pages.
قم بترقية OpenEMR إلى الإصدار 8.0.0 أو أحدث فوراً. قم بتطبيق التحقق الصارم من جانب الخادم للتأكد من أن المستخدمين المصرحين يمكنهم الوصول فقط إلى سجلاتهم الخاصة بالتحقق من معرف المريض مقابل مستخدم جلسة العمل المصرح. طبق التحقق من المدخلات وفحوصات التفويض على جميع معاملات معرف المريض في portal_payment.php والصفحات المشابهة.