Podatność w module sanityzacji HTML biblioteki XWiki Commons pozwala atakującemu bez uprawnień skryptowych na przeprowadzenie ataku phishingowego lub zdalnego wykonania kodu (RCE). Błąd jest krytyczny, ponieważ może zostać wykorzystany do wykonania kodu Groovy z uprawnieniami administratora.
▸ Pokaż oryginał (EN)
Xwiki commons is the common modules used by other XWiki top level projects. The HTML sanitizer that is included in XWiki since version 14.6RC1 allowed form and input HTML tags. In the context of XWiki, this allows an attacker without script right to either create forms that can be used for phishing attacks or also in the context of a sheet, the attacker could add an input like `{{html}}<input type="hidden" name="content" value="{{groovy}}println("Hello from Groovy!")" />{{/html}}` that would allow remote code execution when it is submitted by an admin (the sheet is rendered as part of the edit form). The attacker would need to ensure that the edit form looks plausible, though, which can be non-trivial as without script right the attacker cannot display the regular content of the document. This has been patched in XWiki 14.10.6 and 15.2RC1 by removing the central form-related tags from the list of allowed tags. Users are advised to upgrade. As a workaround an admin can manually disallow the tags by adding `form, input, select, textarea, button` to the configuration option `xml.htmlElementSanitizer.forbidTags` in the `xwiki.properties` configuration file.
Sanitizer HTML w XWiki, wprowadzony od wersji 14.6RC1, nieprawidłowo zezwalał na tagi HTML związane z formularzami, takie jak `form` i `input`. Atakujący bez uprawnień skryptowych mógł w kontekście tzw. sheet wstrzyknąć ukryte pole formularza zawierające payload w języku Groovy, np. `<input type="hidden" name="content" value="{{groovy}}println(...)" />`. Gdy administrator edytował dokument (renderując formularz edycji), wstrzyknięty kod był wykonywany z jego uprawnieniami. Dodatkowo możliwe było tworzenie fałszywych formularzy służących do ataków phishingowych.
Atakujący może doprowadzić do zdalnego wykonania dowolnego kodu (RCE) z uprawnieniami administratora oraz tworzyć złośliwe formularze phishingowe. W przypadku udanego RCE możliwe jest pełne przejęcie kontroli nad instancją XWiki, w tym naruszenie poufności, integralności i dostępności danych.
Należy zaktualizować XWiki do wersji 14.10.6 lub 15.2RC1, w których usunięto tagi form, input, select, textarea i button z listy dozwolonych tagów HTML. Jako obejście (workaround) administrator może ręcznie dodać `form, input, select, textarea, button` do opcji konfiguracyjnej `xml.htmlElementSanitizer.forbidTags` w pliku `xwiki.properties`.
XWiki Commons w wersjach od 14.6RC1 do 14.10.5 włącznie oraz wersje 15.x przed 15.2RC1
Podatność wymaga interakcji użytkownika (administrator musi zapisać formularz edycji), co podnosi poprzeczkę dla atakującego, jednak nie eliminuje ryzyka RCE. Poprawka dostępna na GitHub w ramach commit 99484d48e899a68a1b6e33d457825b776c6fe8c3.
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:HXwiki Commons
APPXwiki15.015.114.6 – 14.10.6 (bez)
Powiązane podatności
XWiki Commons: XSS przez nieprawidłowe komentarze HTML prowadzący do RCE
XWiki Commons — wstrzyknięcie kodu przez profil użytkownika (RCE)
org.xwiki.commons:xwiki-commons-xml is a common module used by other XWiki top level projects. Starting in ver...
XWiki Platform — niezautoryzowany RCE przez endpoint SolrSearch
SQL Injection w XWiki Full Calendar Macro — dostęp bez uwierzytelnienia