CRITICAL🇬🇧 English

CVE-2021-21247

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

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

Podatność w platformie OneDev umożliwia uwierzytelnionemu atakującemu zdalne wykonanie kodu (RCE) poprzez przesłanie złośliwie spreparowanego, zserializowanego obiektu do endpointu AJAX dostępnego na każdej stronie aplikacji. Pomimo wymogu uwierzytelnienia, krytyczna ocena CVSS 9.6 odzwierciedla pełny zakres możliwych skutków — w tym naruszenie poufności i integralności danych.

Pokaż oryginał (EN)

OneDev is an all-in-one devops platform. In OneDev before version 4.0.3, the application's BasePage registers an AJAX event listener (`AbstractPostAjaxBehavior`) in all pages other than the login page. This listener decodes and deserializes the `data` query parameter. We can access this listener by submitting a POST request to any page. This issue may lead to `post-auth RCE` This endpoint is subject to authentication and, therefore, requires a valid user to carry on the attack. This issue was addressed in 4.0.3 by encrypting serialization payload with secrets only known to server.

🤖 Analiza AI
Jak działa

W wersjach OneDev przed 4.0.3 komponent BasePage rejestruje globalny listener zdarzeń AJAX (AbstractPostAjaxBehavior) na wszystkich stronach z wyjątkiem strony logowania. Listener ten dekoduje i deserializuje parametr zapytania `data` zawarty w żądaniu POST. Atakujący posiadający ważne konto użytkownika może wysłać żądanie POST do dowolnej strony aplikacji z odpowiednio przygotowanym, złośliwym payload'em serializacyjnym. Niebezpieczna deserializacja (CWE-502) prowadzi do wykonania dowolnego kodu po stronie serwera.

Skutki

Uwierzytelniony atakujący może uzyskać zdalne wykonanie kodu (RCE) na serwerze hostującym OneDev, co może skutkować pełnym przejęciem kontroli nad aplikacją oraz naruszeniem poufności i integralności przetwarzanych danych.

Mitygacja

Należy zaktualizować OneDev do wersji 4.0.3 lub nowszej. W wersji 4.0.3 producent wprowadził szyfrowanie payload'u serializacyjnego przy użyciu sekretów znanych wyłącznie serwerowi, co eliminuje możliwość podrzucenia złośliwych danych przez atakującego.

Kogo dotyczy

OneDev (Onedev Project) we wszystkich wersjach przed 4.0.3

Uwagi

Podatność wymaga uwierzytelnienia (PR:L), jednak zakres ataku jest nieograniczony (S:C), co skutkuje krytyczną oceną CVSS 9.6. Szczegóły podatności zostały opublikowane przez producenta w ramach GitHub Security Advisory GHSA-6pxf-75cf-vwjp.

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/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.
Tagi
Deserialization
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-21243CRITICAL10.0PL ✓ten sam produkt

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

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

OneDev: Dowolne przesyłanie plików przez AttachmentUploadServlet