Podatność w Apache Syncope pozwala administratorowi z odpowiednimi uprawnieniami na importowanie definicji procesów BPMN zawierających skrypty Groovy i uruchamianie ich bezpośrednio na serwerze bez żadnego sandbox. Stanowi to poważne zagrożenie, gdyż umożliwia wykonanie dowolnego kodu po stronie serwera.
▸ Pokaż oryginał (EN)
Improper Isolation or Compartmentalization vulnerability in Apache Syncope. An administrator with adequate entitlements can import arbitrary BPMN process definitions via the REST API and then start the process. When a BPMN process containing a Groovy scriptTask is imported and started, the Groovy script is executed directly on the server, with no sandbox. This issue affects Apache Syncope: from 3.0.0-M0 through 3.0.16, from 4.0.0-M0 Through 4.0.6, from 4.1.0-M0 through 4.1.1. Users are recommended to upgrade to version 4.0.7 / 4.1.2, which fix this issue by wrapping Flowable's Groovy scriptTasks with security sandbox.
Atakujący posiadający konto administratora z odpowiednimi uprawnieniami może za pośrednictwem REST API zaimportować dowolną definicję procesu BPMN zawierającą element scriptTask wykorzystujący język Groovy. Po zainicjowaniu takiego procesu, serwer Apache Syncope wykonuje zawarty skrypt Groovy bezpośrednio w swoim środowisku uruchomieniowym, bez jakiejkolwiek izolacji ani mechanizmu sandbox. Brak właściwej separacji (CWE-653 — Improper Isolation or Compartmentalization) sprawia, że skrypt ma pełny dostęp do zasobów serwera.
Atakujący może wykonać dowolny kod na serwerze z uprawnieniami procesu Apache Syncope, co w praktyce oznacza możliwość przejęcia pełnej kontroli nad systemem, kradzieży danych, instalacji backdoor lub zakłócenia dostępności usług.
Należy zaktualizować Apache Syncope do wersji 4.0.7 lub 4.1.2, które rozwiązują problem poprzez opakowanie obsługi Groovy scriptTask silnika Flowable w mechanizm security sandbox. Dla gałęzi 3.0.x należy zapoznać się z referencjami producenta w celu uzyskania informacji o dostępnych poprawkach.
Apache Syncope w wersjach: od 3.0.0-M0 do 3.0.16 włącznie, od 4.0.0-M0 do 4.0.6 włącznie, od 4.1.0-M0 do 4.1.1 włącznie
Podatność wymaga posiadania konta administratora z odpowiednimi uprawnieniami w Apache Syncope — nie jest to podatność dostępna bez uwierzytelnienia, mimo że wektor CVSS wskazuje AV:N/PR:N. Należy zweryfikować rzeczywisty zakres uprawnień wymaganych w danym środowisku. Poprawka polega na owinięciu Groovy scriptTask silnika Flowable mechanizmem security sandbox.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HApache Syncope
APPApache3.0.0 – 3.0.164.0.0 – 4.0.7 (bez)4.1.0 – 4.1.2 (bez)
Powiązane podatności
Apache Syncope — privilege escalation do poziomu administratora przez REST API
Apache Syncope – ominięcie sandboxa Groovy przez administratora
SQL Injection w Apache Syncope via niesanityzowane parametry sortowania
Apache Syncope — RCE przez niebezpieczne wykonywanie skryptów Groovy
Apache Syncope: Server-Side Template Injection w szablonach e-mail (RCE)