W wersjach ChurchCRM wcześniejszych niż 6.5.3 funkcja przywracania bazy danych nie weryfikuje rozszerzenia ani zawartości przesyłanych plików. Pozwala to atakującemu na wgranie web shell i przejęcie pełnej kontroli nad serwerem poprzez zdalne wykonanie poleceń (RCE).
▸ Pokaż oryginał (EN)
ChurchCRM is an open-source church management system. In versions prior to 6.5.3, the Database Restore functionality does not validate the content or file extension of uploaded files. As a result, an attacker can upload a web shell file and subsequently upload a .htaccess file to enable direct access to it. Once accessed, the uploaded web shell allows remote code execution (RCE) on the server. Version 6.5.3 fixes the issue.
Atakujący z uprawnieniami administratora wykorzystuje funkcję Database Restore do przesłania złośliwego pliku (web shell) bez jakiejkolwiek weryfikacji jego rozszerzenia lub zawartości. Następnie wgrywa plik .htaccess, który konfiguruje serwer WWW tak, aby umożliwić bezpośredni dostęp do wgranego web shell. Po uzyskaniu dostępu do web shell atakujący może wykonywać dowolne polecenia systemowe na serwerze (command injection / RCE).
Atakujący może uzyskać pełną kontrolę nad serwerem — wykonać dowolny kod, odczytać lub zmodyfikować dane, a także przemieszczać się dalej w infrastrukturze (lateral movement). Zagrożone są poufność, integralność i dostępność systemu.
Należy zaktualizować ChurchCRM do wersji 6.5.3 lub nowszej, która eliminuje opisaną podatność. Patch dostępny w repozytorium producenta: https://github.com/ChurchCRM/CRM/security/advisories/GHSA-pqm7-g8px-9r77
ChurchCRM w wersjach wcześniejszych niż 6.5.3
Mimo wysokiego wyniku CVSS (9.1 CRITICAL) wymagane są uprawnienia administratora (PR:H), co nieznacznie ogranicza powierzchnię ataku — podatność jest jednak szczególnie groźna w środowiskach z wieloma użytkownikami administracyjnymi lub przy przejęciu konta admina.
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:HChurchcrm
APPChurchcrm< 6.5.3
Powiązane podatności
ChurchCRM — krytyczny auth bypass w API middleware
SQL Injection w ChurchCRM przez parametr searchwhat (QueryView.php)
ChurchCRM: Path Traversal i RCE przez funkcję przywracania kopii zapasowej
ChurchCRM: pre-auth RCE przez wstrzyknięcie kodu PHP w kreatorze instalacji
SQL Injection w ChurchCRM — kompromitacja bazy danych