W OpenEMR w wersjach od 5.0.2 do przed 8.0.0 tajny klucz API bramki płatności (gateway_api_key) jest zwracany do klienta w postaci niezaszyfrowanej (plaintext) przez co najmniej dwie ścieżki aplikacji. Ujawnienie tego klucza może umożliwić atakującemu przejęcie kontroli nad kontem bramki płatności lub wykonanie nieautoryzowanych transakcji finansowych.
▸ Pokaż oryginał (EN)
OpenEMR is a free and open source electronic health records and medical practice management application. From 5.0.2 to before 8.0.0, there are (at least) two paths where the gateway_api_key secret value is rendered to the client in plaintext. These secret keys being leaked could result in arbitrary money movement or broad account takeover of payment gateway APIs. This vulnerability is fixed in 8.0.0.
Aplikacja OpenEMR w plikach obsługi płatności (front_payment.php oraz portal_payment.php) renderuje wartość tajnego klucza gateway_api_key bezpośrednio w odpowiedzi wysyłanej do przeglądarki klienta w postaci jawnego tekstu. Zalogowany użytkownik (wymagany niski poziom uprawnień, co potwierdza wektor CVSS PR:L) może odczytać ten klucz np. z kodu źródłowego strony lub ruchu sieciowego. Ponieważ zakres podatności wykracza poza instancję aplikacji (S:C w CVSS), konsekwencje dotyczą zewnętrznych systemów bramki płatności.
Atakujący posiadający dostęp do ujawnionego klucza API może przejąć kontrolę nad kontem bramki płatności lub wykonywać nieautoryzowane operacje finansowe (tzw. arbitrary money movement), co stanowi poważne ryzyko finansowe i naruszenie poufności danych płatniczych.
Należy zaktualizować OpenEMR do wersji 8.0.0, w której podatność została naprawiona (commit fe6341496dc82d5b4f5a3f35891bb2e2481f3b25). Po aktualizacji zaleca się natychmiastową rotację (wymianę) wszystkich kluczy API bramek płatniczych skonfigurowanych w systemie, ponieważ wcześniej ujawnione klucze należy uznać za skompromitowane.
OpenEMR w wersjach od 5.0.2 do przed 8.0.0
Podatność dotyczy systemu elektronicznej dokumentacji medycznej przetwarzającego wrażliwe dane pacjentów i płatności. Wyciek klucza API bramki płatniczej może naruszać wymogi regulacyjne (np. PCI DSS). Szczegóły techniczne dostępne w publicznym security advisory GHSA-2hq8-wc73-jvvq na GitHub.
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:NOpen Emr Openemr
APPOpen-Emr5.0.2 – 8.0.0 (bez)
Powiązane podatności
Command Injection w funkcji backup OpenEMR (wersje przed 8.0.0.2)
OpenEMR: ujawnienie tokenów API MedEx bez uwierzytelnienia (Auth Bypass)
SQL Injection w OpenEMR — narażenie danych PHI przez parametr _sort
OpenEMR: path traversal umożliwia odczyt dowolnych plików przez uwierzytelnionego użytkownika
SQL Injection w OpenEMR 7.0.2 — krytyczna podatność w module aptecznym