CVE-2026-104139
ŚrednieCVSS 6.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 23 - wyżej niż 23% wszystkich znanych CVE
Streszczenie
W OpenEMR przed wersją 8.3.0 skrypt library/ajax/set_pt.php pozwala każdemu uwierzytelnionemu użytkownikowi ustawić dowolny identyfikator pacjenta w sesji bez sprawdzenia ACL, a download_template.php ufa tej wartości. Użytkownik o niskich uprawnieniach może pobrać szablon dokumentu z danymi demograficznymi, wizytami, alergiami, lekami i listą problemów innego pacjenta.
Ocena ryzyka
Może dojść do nieuprawnionego ujawnienia wrażliwych danych medycznych pacjentów.
Rekomendacja
Zaktualizuj OpenEMR do wersji 8.3.0 lub nowszej.
Inne podatności w OpenEMR
Zobacz wszystkie- CVE-2017-1000241Wysokie
Aplikacja OpenEMR w wersjach 5.0.0, 5.0.1-dev i wcześniejszych jest podatna na lukę umożliwiającą eskalację uprawnień w pionie. Luka ta pozwala uwierzytelnionym użytkownikom niebędącym administratorami na przeglądanie i modyfikowanie informacji dostępnych tylko dla administratorów.
- CVE-2017-16540Wysokie
OpenEMR w wersjach przed 5.0.0 Patch 5 umożliwia nieautoryzowane zdalne kopiowanie bazy danych, ponieważ plik setup.php udostępnia funkcjonalność klonowania istniejącej witryny OpenEMR na dowolny serwer MySQL kontrolowany przez atakującego za pomocą spreparowanego parametru stanu.
- CVE-2017-9380Wysokie
OpenEMR w wersji 5.0.0 i wcześniejszych pozwala użytkownikom o niskich uprawnieniach na przesyłanie plików niebezpiecznych typów, co może prowadzić do wykonania dowolnego kodu w kontekście podatnej aplikacji.
- CVE-2026-102940Krytyczne
OpenEMR przed wersją 8.4.0 ma błąd w kontrolerach C_Document.class.php: akcje zapisu, w tym move_action_process(), nie weryfikują dostępu wywołującego do dokumentu źródłowego, bieżącego pacjenta i kategorii ani do docelowego pacjenta i kategorii przed wykonaniem mutacji przez Document::change_patient(). Nisko uprzywilejowany uwierzytelniony użytkownik może przypisać dowolny dokument do pacjenta lub kategorii, do której ma dostęp, a następnie go odczytać.
- CVE-2026-39932Krytyczne
OpenEMR do wersji 8.2.0 zawiera lukę zdalnego wykonania kodu w komponencie drzewa kategorii dokumentów (library/classes/Tree.class.php), która pozwala uwierzytelnionym administratorom na wykonanie dowolnych poleceń systemu operacyjnego poprzez wstrzyknięcie ładunków PHP do tabeli kategorii bazy danych. Atakujący mogą połączyć dowolne wykonanie SQL, aby zmienić typ kolumny id na VARCHAR i wstawić złośliwy ładunek PHP, który jest następnie wykonywany przez niesanitizowane wywołanie eval() przy każdym uruchomieniu CategoryTree, w tym na stronach nieuwierzytelnionych i o niskich uprawnieniach, co skutkuje wykonaniem poleceń jako użytkownik serwera WWW.
- CVE-2026-65983Wysokie
W OpenEMR przed wersją 8.2.0 moduł faksu (SignalWireClient) odszyfrowuje dokument pacjenta i zapisuje go w postaci jawnej pod sites/{siteId}/fax, chroniąc go tylko przewidywalną nazwą uniqid() i nie usuwając pliku. Nieuwierzytelniony atakujący może odczytać trwałe dokumenty pacjentów, nawet przy włączonym szyfrowaniu dysku.
- CVE-2026-115573Wysokie
W OpenEMR przed wersją 8.3.0 plik library/classes/Controller.class.php pozwala na jawne wywołanie controller.php dla kontrolerów nieobecnych w CONTROLLER_ACL_MAP, a checkControllerAcl() nie egzekwuje żadnych uprawnień dla takich wpisów. Użytkownik z niskimi uprawnieniami może wywołać C_X12Partner::edit_action_process() w celu utworzenia lub zmiany hostów i poświadczeń routingu ubezpieczeniowego albo C_PatientFinder::find_action_process() w celu wyliczenia danych pacjentów. Wspólna przyczyna fail-open w dyspozytorze odsłania także inne kontrolery administracyjne.
- CVE-2026-104138Średnie
W OpenEMR przed wersją 8.3.0 skrypty custom/ajax_download.php, custom/download_qrda.php, custom/export_qrda_xml.php i custom/qrda_download.php walidują CSRF, ale nie egzekwują uprawnień ACL patients/med. Akceptują też nieograniczony report_id, co pozwala użytkownikowi o niskich uprawnieniach pobrać dokumenty QRDA Category One i Three dla pacjentów w miarach.
- CVE-2026-104137Wysokie
W OpenEMR przed wersją 8.3.0 gałąź sms_search w interface/main/messages/save.php wymaga uwierzytelnionej sesji, ale nie egzekwuje ACL na poziomie pacjenta ani funkcji. Użytkownik z niskimi uprawnieniami, który nie ma dostępu do danych pacjentów przez normalny interfejs, może przeszukać endpoint MedEx SMS i otrzymać identyfikatory pacjentów, imiona, numery telefonów, status zgody SMS oraz informacje o ostatnich wiadomościach.
- CVE-2026-104136Wysokie
W OpenEMR przed wersją 8.3.0 gałąź new_recall w interface/main/messages/save.php przyjmuje pid dostarczony przez wywołującego bez egzekwowania autoryzacji na poziomie pacjenta ani workflow recall. Użytkownik z niskimi uprawnieniami, który zna lub wyliczy identyfikator pacjenta, może pobrać dane pacjenta, pola kontaktowe, preferencje powiadomień HIPAA, informacje o ostatnich wizytach oraz istniejące informacje recall.
Oryginalny opis (angielski, źródło NVD)
OpenEMR is a free and open source electronic health records and medical practice management application. Prior to 8.3.0, library/ajax/set_pt.php allows any authenticated user to set an arbitrary patient identifier in the active session without an ACL check, and interface/patient_file/download_template.php trusts that session value while enforcing only CSRF validation. A low-privilege user can select another patient and download a rendered document template containing the patient's demographics, encounter information, allergies, medications, and problem list despite lacking patients/docs access. This issue is fixed in version 8.3.0.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

