CVE-2026-39931
WysokieCVSS 7.2Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 25 - wyżej niż 25% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Administrator z uprawnieniami może wykonać dowolne polecenia SQL, co może prowadzić do całkowitego przejęcia bazy danych, w tym kradzieży danych, modyfikacji uprawnień i trwałego backdoora.
Rekomendacja
Należy zaktualizować OpenEMR do wersji nowszej niż 8.2.0, która zawiera poprawkę tej podatności, oraz ograniczyć uprawnienia administratorów.
Inne podatności w OpenEMR
Zobacz wszystkie- 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-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-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-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-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-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.
Oryginalny opis (angielski, źródło NVD)
OpenEMR through 8.2.0 contains an authenticated SQL injection vulnerability in the backup configuration import feature that allows administrators with admin or super ACL privileges to execute arbitrary DDL and DML statements against the application database by uploading a crafted SQL file at the form_step=202 parameter in backup.php. Attackers can exploit the unfiltered shell_exec invocation of the mysql command-line client to extract credential hashes, modify access control tables, inject backdoor accounts, create persistent triggers or stored procedures, and write arbitrary files to the filesystem where MySQL FILE privileges and permissive secure_file_priv settings are configured.

