CRITICAL🇬🇧 English

CVE-2022-39205

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

CVSS 9.0v3.1pub. 2022-09-13upd. 2024-11-21

Podatność w OneDev przed wersją 7.3.0 pozwala nieuwierzytelnionemu atakującemu na przejęcie pełnej kontroli nad instancją serwera. Błędna weryfikacja źródła żądań w endpoincie /git-prereceive-callback umożliwia zapis do dowolnych plików i wykonanie arbitralnego kodu.

Pokaż oryginał (EN)

Onedev is an open source, self-hosted Git Server with CI/CD and Kanban. In versions of Onedev prior to 7.3.0 unauthenticated users can take over a OneDev instance if there is no properly configured reverse proxy. The /git-prereceive-callback endpoint is used by the pre-receive git hook on the server to check for branch protections during a push event. It is only intended to be accessed from localhost, but the check relies on the X-Forwarded-For header. Invoking this endpoint leads to the execution of one of various git commands. The environment variables of this command execution can be controlled via query parameters. This allows attackers to write to arbitrary files, which can in turn lead to the execution of arbitrary code. Such an attack would be very hard to detect, which increases the potential impact even more. Users are advised to upgrade. There are no known workarounds for this issue.

🤖 Analiza AI
Jak działa

Endpoint /git-prereceive-callback jest przeznaczony wyłącznie do użytku lokalnego (przez hook pre-receive serwera Git), jednak weryfikacja źródła żądania opiera się wyłącznie na nagłówku X-Forwarded-For, który może być swobodnie sfałszowany przez atakującego. Po ominięciu tej kontroli atakujący może wywołać endpoint z zewnątrz sieci, co skutkuje wykonaniem poleceń git po stronie serwera. Zmienne środowiskowe tych poleceń mogą być kontrolowane przez parametry zapytania HTTP, co umożliwia zapis do dowolnych plików w systemie, a w konsekwencji wykonanie arbitralnego kodu. Atak jest wyjątkowo trudny do wykrycia, co dodatkowo zwiększa jego potencjalny wpływ.

Skutki

Nieuwierzytelniony atakujący może uzyskać pełną kontrolę nad instancją OneDev, zapisując dowolne pliki i wykonując arbitralny kod z uprawnieniami procesu serwera. W efekcie możliwe jest całkowite przejęcie serwera, w tym dostęp do repozytoriów kodu, danych CI/CD oraz konfiguracji systemu.

Mitygacja

Należy niezwłocznie zaktualizować OneDev do wersji 7.3.0 lub nowszej. Producent nie wskazuje żadnych znanych obejść (workarounds) dla tej podatności. Jako dodatkowe zabezpieczenie zaleca się skonfigurowanie reverse proxy tak, aby blokował lub nadpisywał nagłówek X-Forwarded-For dla żądań przychodzących z zewnątrz.

Kogo dotyczy

OneDev w wersjach wcześniejszych niż 7.3.0, szczególnie instancje nieposiadające prawidłowo skonfigurowanego reverse proxy filtrującego nagłówki X-Forwarded-For

Uwagi

Podatność została opisana przez badaczy z SonarSource (referencja: blog.sonarsource.com/onedev-remote-code-execution). Poprawka dostępna w commicie f1e97688e4e19d6de1dfa1d00e04655209d39f8e w repozytorium GitHub projektu.

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

    APP
    Onedev Project
    < 7.3.0
🔵
ZWERYFIKUJ U PRODUCENTA
Brak jednoznacznych danych o patchu. Sprawdź referencje od producenta.
Tagi
Auth Bypass
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-2021-21244CRITICAL10.0PL ✓ten sam produkt

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

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

OneDev: Dowolne przesyłanie plików przez AttachmentUploadServlet

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

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

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

OneDev: Pre-auth RCE przez deserializację w AttachmentUploadServlet