Podatności OpenEMR
79 znanych podatności CVE w OpenEMR, przetłumaczonych i ocenionych.
- 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-104139Średnie
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.
- 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.
- CVE-2026-104135Średnie
W OpenEMR przed wersją 8.3.0 skrypt library/ajax/payment_ajax.php waliduje token CSRF, ale nie wykonuje sprawdzenia autoryzacji AclMain przed wyszukiwaniem w tabeli patient_data. Każdy uwierzytelniony użytkownik, także w roli nieklinicznej, może wyliczyć identyfikatory pacjentów, pełne imiona i nazwiska oraz daty urodzenia.
- CVE-2026-104134Średnie
W OpenEMR przed wersją 8.3.0 akcja search_persons w library/ajax/person_search_ajax.php waliduje CSRF, ale nie wykonuje sprawdzenia autoryzacji AclMain przed przeszukiwaniem tabel person i patient_data. Użytkownik o niskich uprawnieniach może iterować prefiksy nazwisk i otrzymywać imiona, nazwiska, daty urodzenia, płeć, numery telefonów i adresy e-mail pacjentów.
- CVE-2026-104133Wysokie
W OpenEMR przed wersją 8.3.0 plik interface/modules/custom_modules/oe-module-dorn/public/compendium_install.php sprawdza uwierzytelnienie i CSRF, ale nie wymaga ACL admin/users egzekwowanego przez siostrzane skrypty administracyjne DORN. Gdy moduł DORN jest włączony, użytkownik z niskimi uprawnieniami może podać labGuid, który powoduje, że LabCompendiumInstall::uninstall() usuwa typy procedur detail i result oraz dezaktywuje typy zamówień przed krokiem ponownej instalacji.
- CVE-2026-103939Średnie
W OpenEMR przed wersją 8.3.0 skrypt file_download.php modułu Weno nie sprawdza uprawnień ACL ani tokenu CSRF i ignoruje wynik walidacji poświadczeń administratora. Przy włączonym module Weno domyślne żądanie GET wywołuje usunięcie aptek Weno, co pozwala każdemu zalogowanemu użytkownikowi opróżnić tabelę weno_pharmacy, a atak CSRF może to wywołać przez zalogowaną ofiarę.
- CVE-2026-103938Wysokie
W OpenEMR przed wersją 8.3.0 plik interface/patient_file/pos_checkout_ippf.php wykonuje operacje zmieniające stan void, voidall i regen przez żądania GET bez walidacji tokenu CSRF. Kontrola integralności form_checksum jest warunkowa i pomijana, gdy parametr zostanie pominięty, co pozwala żądaniu cross-site wymusić na uwierzytelnionym użytkowniku rozliczeń anulowanie checkoutów lub regenerację liczników faktur.
- CVE-2026-103935Wysokie
W OpenEMR przed wersją 8.3.0 pliki interface/forms/transfer_summary/new.php i interface/forms/functional_cognitive_status/new.php renderują zapisane wartości transfer_to, code i codetext za pomocą text(), które używa ENT_NOQUOTES, wewnątrz atrybutów HTML value w podwójnych cudzysłowach. Uwierzytelniony użytkownik kliniczny może zapisać wartość zawierającą podwójny cudzysłów, który ucieka z atrybutu i wstrzykuje znaczniki obsługi zdarzeń, gdy inny klinicysta otworzy formularz.
- CVE-2026-103021Średnie
W OpenEMR od wersji 6.0.0 do 8.3.0 plik interface/globals.php używa nieuwierzytelnionego parametru logowania authUser do wypełnienia temp_authuserid i wczytania ustawień konta przed uwierzytelnieniem. Różnice czasowe lub w treści strony pozwalają zdalnemu nieuwierzytelnionemu atakującemu wyliczyć istniejące konta użytkowników.
- CVE-2026-103020Średnie
W OpenEMR przed wersją 8.3.0 strona administracyjna admin.php dla wielu witryn jest dostępna bez sprawdzania uwierzytelnienia, odczytuje konfigurację z sqlconf.php i łączy się z bazami każdej witryny. Nieuwierzytelniony atakujący może uzyskać identyfikatory witryn, nazwy baz danych, nazwy witryn, dokładne wersje OpenEMR, status aktualizacji oraz linki logowania i portalu pacjenta.
- CVE-2026-103019Średnie
W OpenEMR przed wersją 8.3.0 funkcja userSessionLogout() w AuthorizationController.php przetwarza id_token_hint bez weryfikacji podpisu i przekierowuje na post_logout_redirect_uri przed sprawdzeniem go względem zarejestrowanych URI klienta. Nieuwierzytelniony atakujący może utworzyć link wylogowania prowadzący do dowolnej witryny i unieważniający sesję użytkownika.
- CVE-2026-49142Wysokie
OpenEMR przed wersją 8.5.0 zawiera uwierzytelnioną podatność SQL injection w module Syndromic Surveillance. Użytkownik z uprawnieniami Clinician może odczytywać i modyfikować dowolne dane w bazie poprzez spreparowane wartości w parametrze POST form_icd_codes[] na endpointcie syndromicsurveillance/index, co umożliwia eksfiltrację hashy haseł bcrypt i przejęcie kont administracyjnych.
- CVE-2026-76614Średnie
OpenEMR przed wersją 8.3.0 zawiera podatność na przechodzenie po ścieżkach w funkcji przywracania archiwum EDI. Parametr archrestore_sel jest przekazywany do procedury przywracania bez sanityzacji, a różne komunikaty odpowiedzi ujawniają, czy ścieżka istnieje. Uwierzytelniony użytkownik z uprawnieniami EOB Data Entry może badać dowolne ścieżki na serwerze.
- CVE-2026-40509Średnie
OpenEMR przed wersją 8.3.0 zawiera podatność na cross-site request forgery (CSRF) w przeglądarce DICOM. Parametr GET web_path w stronie przeglądarki DICOM jest osadzany jako URL bez walidacji względem oczekiwanych formatów ścieżek. Atakujący może stworzyć URL, który powoduje, że uwierzytelniony użytkownik z uprawnieniami Patients - Documents wykonuje uwierzytelnione żądania do dowolnych endpointów OpenEMR, umożliwiając wymuszone wylogowanie i inne zmiany stanu.
- CVE-2026-40508Średnie
OpenEMR przed wersją 8.3.0 zawiera podatność na trwały cross-site scripting (XSS) w imporcie szablonów portalu pacjenta. Uwierzytelnieni atakujący z uprawnieniami Forms Administration mogą przesyłać pliki szablonów zawierające dowolny HTML lub JavaScript. Złośliwe skrypty są przechowywane bez sanityzacji i wykonują się w przeglądarce każdego innego użytkownika Forms Administration, który przegląda szablon w edytorze HTML.
- CVE-2026-40507Średnie
OpenEMR przed wersją 8.3.0 zawiera podatność na odbity cross-site scripting (XSS) w imporcie szablonów portalu pacjenta. Parametr GET templateHtml jest odzwierciedlany w odpowiedzi strony bez sanityzacji. Atakujący może stworzyć URL, który wykonuje dowolny JavaScript w przeglądarce każdego uwierzytelnionego użytkownika z uprawnieniami Forms Administration, który odwiedzi link, umożliwiając przejęcie sesji.
- CVE-2026-40506Średnie
OpenEMR przed wersją 8.2.0 zawiera podatność na path traversal w interfejsie standard_tables_manage.php, gdzie parametr db GET jest przekazywany bez walidacji do temp_dir_cleanup(), który łączy wartość ze ścieżką katalogu tymczasowego PHP i rekurencyjnie usuwa wynikowy katalog. Atakujący może dostarczyć sekwencję traversal w parametrze db, aby rozwiązać ścieżkę poza zamierzonym katalogiem tymczasowym, a łącząc to z otwartym przekierowaniem w dicom_frame.php, nieuwierzytelniony atakujący może dostarczyć spreparowany URL, który wyzwala dowolne rekurencyjne usuwanie katalogów w sesji uwierzytelnionego Superusera.
- CVE-2026-67612Średnie
OpenEMR do wersji 8.2.0 zawiera podatność na trwałe XSS w systemie szablonów portalu pacjenta. Uwierzytelnieni administratorzy mogą wstrzykiwać dowolny HTML i JavaScript poprzez zapis złośliwych treści w trybie zapisu szablonu, który filtruje tylko dosłowne znaczniki PHP. Brak kodowania wyjścia w punkcie końcowym pobierania szablonu oraz brak atrybutów HttpOnly w ciasteczkach umożliwia przechwycenie tokenów sesji poprzez document.cookie.
- CVE-2026-67611Wysokie
OpenEMR do wersji 8.2.0 zawiera podatność umożliwiającą ominięcie uwierzytelniania, która pozwala atakującym z prawidłowymi danymi logowania na ominięcie uwierzytelniania wieloskładnikowego poprzez wykorzystanie odsłoniętego przepływu grantu hasła OAuth2 przez nieuwierzytelniony punkt końcowy rejestracji klienta. Atakujący mogą zarejestrować klienta OAuth2 i użyć grantu hasła do uzyskania tokena dostępu API, omijając normalne uwierzytelnianie interfejsu webowego i wszelkie wymuszone kontrole uwierzytelniania wieloskładnikowego.
- CVE-2026-67610Wysokie
OpenEMR do wersji 8.2.0 zawiera podatność nieprawidłowego uwierzytelniania w punkcie końcowym dynamicznej rejestracji klienta OAuth2, która pozwala nieuwierzytelnionym atakującym na zarejestrowanie złośliwego klienta z zakresami FHIR na poziomie systemu poprzez dostarczenie samodzielnie wygenerowanej pary kluczy RSA w polu jwks. Po zatwierdzeniu zarejestrowanego klienta przez administratora, atakujący mogą użyć grantu client_credentials z samopodpisanym JWT do uzyskania tokenów dostępu dających dostęp do odczytu wszystkich zasobów FHIR wszystkich pacjentów w systemie.
- CVE-2026-39931Wysokie
OpenEMR do wersji 8.2.0 zawiera podatność na iniekcję SQL w funkcji importu konfiguracji kopii zapasowej, która pozwala administratorom z uprawnieniami admin lub super ACL na wykonanie dowolnych instrukcji DDL i DML przeciwko bazie danych aplikacji poprzez przesłanie spreparowanego pliku SQL przy parametrze form_step=202 w backup.php. Atakujący mogą wykorzystać niefiltrowane wywołanie shell_exec klienta wiersza poleceń mysql do wyodrębnienia skrótów haseł, modyfikacji tabel kontroli dostępu, wstrzyknięcia kont zapasowych, tworzenia trwałych wyzwalaczy lub procedur składowanych oraz zapisu dowolnych plików do systemu plików, jeśli skonfigurowane są uprawnienia FILE MySQL i liberalne ustawienia secure_file_priv.
- CVE-2026-46518Wysokie
OpenEMR przed wersją 8.0.0.1 zawiera podatność XSS w funkcji drukowania recept CSS/HTML. Użytkownik portalu pacjenta może wstrzyknąć złośliwy JavaScript do pól demograficznych, który wykona się w sesji klinicysty, umożliwiając przejęcie sesji i wykonanie działań jako klinicysta.
- CVE-2023-54347Wysokie
OpenEMR w wersji 7.0.1 zawiera podatność na atak typu brute force w procesie uwierzytelniania, co pozwala atakującym na ominięcie zabezpieczeń ograniczających liczbę prób logowania. Atakujący mogą wysyłać powtarzające się próby logowania do głównego punktu logowania, testując kombinacje nazw użytkowników i haseł.
- CVE-2026-25929Średnie
OpenEMR to darmowa aplikacja open source do prowadzenia dokumentacji medycznej. Przed wersją 8.0.0 kontroler dokumentów w kontekście patient_picture udostępnia zdjęcie pacjenta na podstawie identyfikatora dokumentu lub pacjenta bez weryfikacji, czy bieżący użytkownik ma uprawnienia do tego pacjenta. Uwierzytelniony użytkownik z uprawnieniami ACL do dokumentów może podać identyfikator innego pacjenta i pobrać jego zdjęcie.
- CVE-2023-22974Wysokie
W OpenEMR < 7.0.0 występuje Path Traversal w setup.php, który umożliwia zdalnym nieuwierzytelnionym użytkownikom odczyt dowolnych plików poprzez kontrolowanie połączenia z serwerem MySQL kontrolowanym przez atakującego.
- CVE-2023-22972Średnie
W OpenEMR w wersjach przed 7.0.0 w pliku interface/forms/eye_mag/php/eye_mag_functions.php występuje odbity cross-site scripting (XSS). Zdalni uwierzytelnieni użytkownicy mogą wstrzyknąć dowolny skrypt lub HTML poprzez REQUEST_URI.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

