OneDev przed wersją 4.0.3 zawiera krytyczną podatność typu Server Side Template Injection (SSTI), którą można wykorzystać bez uwierzytelnienia poprzez manipulację komunikatami walidacji Bean. Maksymalny wynik CVSS 10.0 wskazuje na pełne zagrożenie dla integralności i poufności systemu.
▸ Pokaż oryginał (EN)
OneDev is an all-in-one devops platform. In OneDev before version 4.0.3, There is a vulnerability that enabled pre-auth server side template injection via Bean validation message tampering. Full details in the reference GHSA. This issue was fixed in 4.0.3 by disabling validation interpolation completely.
Podatność wynika z możliwości wstrzyknięcia złośliwego kodu szablonu (template injection) poprzez spreparowane komunikaty walidacji Bean (Bean validation messages). Atakujący bez żadnego uwierzytelnienia może dostarczyć specjalnie spreparowane dane wejściowe, które są następnie przetwarzane przez silnik szablonów po stronie serwera. Pozwala to na wykonanie dowolnego kodu w kontekście aplikacji. Problem został naprawiony w wersji 4.0.3 poprzez całkowite wyłączenie interpolacji walidacji (validation interpolation).
Atakujący nieuwierzytelniony zdalnie może uzyskać pełną kontrolę nad serwerem — odczytywać lub modyfikować poufne dane oraz wykonywać dowolny kod po stronie serwera, co może prowadzić do całkowitego przejęcia systemu.
Należy zaktualizować OneDev do wersji 4.0.3 lub nowszej, w której wyłączono interpolację walidacji (validation interpolation). Szczegóły poprawki dostępne są w oficjalnym security advisory producenta (GHSA-vm26-xg39-cfj4).
OneDev we wszystkich wersjach przed 4.0.3
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:NOnedev Project Onedev
APPOnedev Project< 4.0.3
Powiązane podatności
OneDev: ucieczka z kontenera Docker i przejęcie hosta przez CI/CD
OneDev: Pominięcie uwierzytelnienia prowadzące do RCE przez endpoint git callback
OneDev: Dowolne przesyłanie plików przez AttachmentUploadServlet
OneDev — zdalne wykonanie kodu przez deserializację danych AJAX (post-auth RCE)
OneDev — pre-auth RCE przez deserializację w endpointach Kubernetes