CRITICAL🇬🇧 English

CVE-2021-21245

OneDev: Dowolne przesyłanie plików przez AttachmentUploadServlet

CVSS 10.0v3.1pub. 2021-01-15upd. 2024-11-21

OneDev przed wersją 4.0.3 zawiera podatność umożliwiającą przesłanie dowolnego pliku na serwer, w tym potencjalnie WebShell. Podatność wynika z braku walidacji zarówno treści przesyłanego pliku, jak i ścieżki docelowej wskazywanej przez użytkownika.

Pokaż oryginał (EN)

OneDev is an all-in-one devops platform. In OneDev before version 4.0.3, AttachmentUploadServlet also saves user controlled data (`request.getInputStream()`) to a user specified location (`request.getHeader("File-Name")`). This issue may lead to arbitrary file upload which can be used to upload a WebShell to OneDev server. This issue is addressed in 4.0.3 by only allowing uploaded file to be in attachments folder. The webshell issue is not possible as OneDev never executes files in attachments folder.

🤖 Analiza AI
Jak działa

Komponent AttachmentUploadServlet zapisuje dane przesłane przez użytkownika (pobierane bezpośrednio z `request.getInputStream()`) do lokalizacji wskazanej przez nagłówek HTTP `File-Name`, który jest w pełni kontrolowany przez atakującego. Brak jakiejkolwiek walidacji ścieżki docelowej pozwala na umieszczenie pliku w dowolnym miejscu na serwerze. Atakujący może w ten sposób próbować wgrać złośliwy plik, np. WebShell, poza przeznaczonym do tego folderem załączników.

Skutki

Atakujący nieuwierzytelniony zdalnie może przesłać dowolny plik w dowolne miejsce na serwerze, co potencjalnie prowadzi do przejęcia kontroli nad serwerem poprzez wykonanie złośliwego kodu (np. WebShell). Według producenta faktyczne wykonanie WebShell nie jest możliwe w domyślnej konfiguracji, ponieważ OneDev nigdy nie wykonuje plików z folderu załączników.

Mitygacja

Należy zaktualizować OneDev do wersji 4.0.3 lub nowszej. W wersji 4.0.3 producent wprowadził ograniczenie, które pozwala zapisywać przesyłane pliki wyłącznie w folderze załączników, eliminując możliwość zapisu w dowolnej lokalizacji na serwerze.

Kogo dotyczy

OneDev (platforma DevOps projektu Onedev Project) w wersjach przed 4.0.3

Uwagi

Mimo oceny CVSS 10.0 (CRITICAL), producent wskazuje, że ryzyko wykonania WebShell jest ograniczone przez fakt, że OneDev nie wykonuje plików z folderu załączników. Poprawka dostępna w commicie 0c060153fb97c0288a1917efdb17cc426934dacb w repozytorium GitHub.

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N
  • Onedev Project Onedev

    APP
    Onedev Project
    < 4.0.3
🔵
ZWERYFIKUJ U PRODUCENTA
Brak jednoznacznych danych o patchu. Sprawdź referencje od producenta.
CWE
Referencje

Powiązane podatności

CVE-2022-39206CRITICAL9.9PL ✓ten sam produkt

OneDev: ucieczka z kontenera Docker i przejęcie hosta przez CI/CD

CVE-2022-39205CRITICAL9.0PL ✓ten sam produkt

OneDev: Pominięcie uwierzytelnienia prowadzące do RCE przez endpoint git callback

CVE-2021-21244CRITICAL10.0PL ✓ten sam produkt

Pre-auth Server Side Template Injection w OneDev (przed 4.0.3)

CVE-2021-21247CRITICAL9.6PL ✓ten sam produkt

OneDev — zdalne wykonanie kodu przez deserializację danych AJAX (post-auth RCE)

CVE-2021-21243CRITICAL10.0PL ✓ten sam produkt

OneDev — pre-auth RCE przez deserializację w endpointach Kubernetes