Podatność path traversal w XWiki Platform pozwala atakującemu na zapisanie zawartości załącznika w dowolnej lokalizacji na serwerze kontrolowanej przez napastnika. W połączeniu z możliwością zastąpienia plików JAR rozszerzeń umożliwia wykonanie dowolnego kodu Java, co stanowi krytyczne zagrożenie dla całej instalacji XWiki.
▸ Pokaż oryginał (EN)
XWiki Platform is a generic wiki platform offering runtime services for applications built on top of it. Starting in version 3.5-milestone-1 and prior to versions 14.10.8 and 15.3-rc-1, triggering the office converter with a specially crafted file name allows writing the attachment's content to an attacker-controlled location on the server as long as the Java process has write access to that location. In particular in the combination with attachment moving, a feature introduced in XWiki 14.0, this is easy to reproduce but it also possible to reproduce in versions as old as XWiki 3.5 by uploading the attachment through the REST API which doesn't remove `/` or `\` from the filename. As the mime type of the attachment doesn't matter for the exploitation, this could e.g., be used to replace the `jar`-file of an extension which would allow executing arbitrary Java code and thus impact the confidentiality, integrity and availability of the XWiki installation. This vulnerability has been patched in XWiki 14.10.8 and 15.3RC1. There are no known workarounds apart from disabling the office converter.
Atakujący inicjuje konwersję pliku przez wbudowany konwerter Office, przesyłając załącznik o specjalnie spreparowanej nazwie zawierającej znaki separatora ścieżki (`/` lub `\`). Mechanizm konwertera nie sanityzuje nazwy pliku, co pozwala zapisać zawartość załącznika poza przewidzianym katalogiem — w dowolnym miejscu dostępnym dla procesu Java. Szczególnie łatwa do wykorzystania jest kombinacja z funkcją przenoszenia załączników (dostępną od XWiki 14.0), jednak exploit jest możliwy również w starszych wersjach (od 3.5) poprzez przesłanie załącznika przez REST API, które nie usuwa niedozwolonych znaków z nazwy pliku. Atakujący może w ten sposób nadpisać plik JAR zainstalowanego rozszerzenia i uzyskać wykonanie dowolnego kodu Java.
Atakujący uwierzytelniony z podstawowymi uprawnieniami może doprowadzić do wykonania dowolnego kodu Java na serwerze (RCE), co skutkuje pełną utratą poufności, integralności i dostępności instalacji XWiki.
Należy zaktualizować XWiki Platform do wersji 14.10.8 lub 15.3RC1. Jedynym dostępnym obejściem jest wyłączenie konwertera Office — producent nie wskazuje innych workaroundów.
XWiki Platform w wersjach od 3.5-milestone-1 do 14.10.7 oraz od 15.0 do 15.2 (przed 15.3-rc-1)
Podatność jest możliwa do wykorzystania również w wersjach tak starych jak XWiki 3.5 poprzez REST API. Typ MIME przesyłanego pliku nie ma znaczenia dla skuteczności ataku, co obniża próg wejścia dla potencjalnego napastnika.
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:HXwiki
APPXwiki3.5 – 14.10.8 (bez)15.0 – 15.3 (bez)
Powiązane podatności
XWiki Platform — niezautoryzowany RCE przez endpoint SolrSearch
XWiki Platform — path traversal umożliwia odczyt plików konfiguracyjnych
XWiki Platform: ujawnienie plików konfiguracyjnych przez webjars API (path traversal)
SQL Injection w XWiki Platform via parametr sort w getdeleteddocuments.vm
XWiki Rendering: bypass trybu restricted przez zagnieżdżone makra