OpenEMR w wersji do 8.2.0 włącznie zawiera podatność umożliwiającą obejście uwierzytelniania wieloskładnikowego (MFA). Atakujący posiadający prawidłowe dane uwierzytelniające może ominąć wymagane mechanizmy MFA i uzyskać token dostępu do API.
▸ Pokaż oryginał (EN)
OpenEMR through 8.2.0 contains an authentication bypass vulnerability that allows attackers with valid credentials to circumvent multi-factor authentication by exploiting the exposed OAuth2 password grant flow through an unauthenticated client registration endpoint. Attackers can register an OAuth2 client via the unauthenticated registration endpoint and use the password grant to exchange credentials for an API access token, bypassing the normal web interface authentication and any enforced multi-factor authentication controls.
Podatność wynika z udostępnienia endpointu rejestracji klienta OAuth2 bez wymogu uwierzytelnienia. Atakujący rejestruje własnego klienta OAuth2 za pośrednictwem tego niezabezpieczonego endpointu, a następnie wykorzystuje przepływ OAuth2 password grant, przekazując prawidłowe dane uwierzytelniające użytkownika w celu uzyskania tokenu dostępu do API. Cały proces omija standardowy interfejs webowy aplikacji oraz wszelkie skonfigurowane mechanizmy MFA, które normalnie byłyby wymagane podczas logowania.
Atakujący z prawidłowymi danymi logowania może uzyskać pełny token dostępu do API OpenEMR, skutecznie omijając wymuszone zabezpieczenia MFA i uzyskując nieautoryzowany dostęp do danych oraz funkcji systemu.
Należy zastosować patche dostępne u producenta zgodnie z referencjami. Dodatkowo zaleca się ograniczenie dostępu sieciowego do endpointów OAuth2 OpenEMR wyłącznie do zaufanych klientów oraz monitorowanie nieoczekiwanych rejestracji klientów OAuth2.
OpenEMR w wersjach do 8.2.0 włącznie
Podatność opisana i opublikowana przez badaczy z Jiva Security oraz VulnCheck. Sklasyfikowana jako CWE-308 (Use of Single-factor Authentication), co odzwierciedla możliwość obejścia mechanizmu MFA przez alternatywny przepływ uwierzytelniania.
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:XOpen Emr Openemr
APPOpen-Emr≤ 8.2.0
Powiązane podatności
RCE w OpenEMR przez eval() injection w komponencie CategoryTree
Command Injection w funkcji backup OpenEMR (wersje przed 8.0.0.2)
OpenEMR: ujawnienie tokenów API MedEx bez uwierzytelnienia (Auth Bypass)
OpenEMR: Wyciek klucza API bramki płatności do klienta w plaintext
SQL Injection w OpenEMR — narażenie danych PHI przez parametr _sort