Podatność w platformie dyskusyjnej Discourse umożliwia administratorowi przesłanie złośliwie spreparowanego archiwum Zip lub Gzip Tar, co prowadzi do zapisu plików w dowolnych lokalizacjach systemu i wykonania zdalnego kodu (RCE). Mimo że do ataku wymagane są uprawnienia administratora, zakres skutków obejmuje pełne przejęcie serwera.
▸ Pokaż oryginał (EN)
Discourse is an open source discussion platform. In versions prior to 2.8.9 on the `stable` branch and prior to 2.9.0.beta10 on the `beta` and `tests-passed` branches, admins can upload a maliciously crafted Zip or Gzip Tar archive to write files at arbitrary locations and trigger remote code execution. The problem is patched in version 2.8.9 on the `stable` branch and version 2.9.0.beta10 on the `beta` and `tests-passed` branches. There are no known workarounds.
Podatność wynika z braku odpowiedniej walidacji ścieżek podczas rozpakowywania przesyłanych archiwów (CWE-434 — unrestricted upload of file with dangerous type). Atakujący z uprawnieniami administratora może umieścić w archiwum pliki ze spreparowanymi ścieżkami (tzw. path traversal wewnątrz archiwum), co pozwala na zapisanie dowolnych plików w dowolnym miejscu systemu plików serwera. Następnie możliwe jest wykonanie umieszczonego w ten sposób kodu po stronie serwera, uzyskując pełną kontrolę nad systemem.
Atakujący może zapisać dowolne pliki na serwerze i wykonać na nim zdalny kod, co w praktyce oznacza możliwość pełnego przejęcia kontroli nad instancją Discourse, kradzieży danych oraz dalszego ruchu po infrastrukturze (lateral movement).
Należy zaktualizować Discourse do wersji 2.8.9 na gałęzi `stable` lub do wersji 2.9.0.beta10 na gałęziach `beta` i `tests-passed`. Producent nie wskazuje żadnych znanych obejść — aktualizacja jest jedyną metodą eliminacji podatności.
Discourse w wersjach wcześniejszych niż 2.8.9 na gałęzi `stable` oraz wcześniejszych niż 2.9.0.beta10 na gałęziach `beta` i `tests-passed`.
Podatność wymaga posiadania uprawnień administratora w aplikacji Discourse, co ogranicza powierzchnię ataku. Mimo to ocena CVSS wynosi 9.1 (Critical) ze względu na możliwość całkowitego przejęcia serwera i brak znanych workaroundów. Patch dostępny w referencjach GitHub: commit b27d5626d208a22c516a0adfda7554b67b493835.
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:HDiscourse
APPDiscourse2.9.0< 2.8.9
Powiązane podatności
RCE w Discourse poprzez brak walidacji wartości subscribe_url
XSS w Discourse via niezwalidowany 'featured link' tematu
RCE via command injection przy przetwarzaniu plików PDF w Discourse
Stored XSS w Discourse przez złośliwą nazwę drugiego składnika uwierzytelniania
Discourse is an open-source discussion platform. Versions prior to 2026.3.0-latest.1, 2026.2.1, and 2026.1.2 h...