CVE-2026-39932
KrytyczneCVSS 9.1Prawdopodobieństwo exploitacji (EPSS)
Podwyższone ryzykoPercentyl 53 - wyżej niż 53% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Ryzyko obejmuje całkowite przejęcie serwera WWW i dostęp do wszystkich danych medycznych, co może prowadzić do naruszenia poufności pacjentów i przerwania działania systemu.
Rekomendacja
Zaleca się natychmiastową aktualizację OpenEMR do wersji powyżej 8.2.0 oraz ograniczenie uprawnień administratorów i stosowanie bezpiecznych praktyk kodowania, takich jak parametryzacja zapytań SQL i unikanie eval().
Inne podatności w OpenEMR
Zobacz wszystkie- 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-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-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.
Oryginalny opis (angielski, źródło NVD)
OpenEMR through 8.2.0 contains a remote code execution vulnerability in the document category tree component (library/classes/Tree.class.php) that allows authenticated administrators to execute arbitrary operating system commands by injecting PHP payloads into the categories database table. Attackers can chain arbitrary SQL execution to alter the id column type to VARCHAR and insert a malicious PHP payload, which is then executed via an unsanitized eval() call whenever any page instantiates CategoryTree, including unauthenticated and low-privilege pages, resulting in command execution as the web server user.

