Jump to content

Bezpečnostní vydání z roku 2021-12/Často kladené otázky

From mediawiki.org
This page is a translated version of the page 2021-12 security release/FAQ and the translation is 100% complete.

V MediaWiki byla nalezena řada zranitelností, které útočníkovi umožňují únik obsahu stránek ze soukromých wikin a obejít oprávnění k úpravám. Hlavním vektorem tohoto úniku wiki je použití zranitelných akcí na stránkách, které jsou uvedeny v $wgWhitelistRead a jsou tedy veřejně přístupné. MediaWiki nyní ve výchozím nastavení zpřístupňuje akci "zobrazit" veřejně pouze na stránkách v doméně $wgWhitelistRead . Tyto problémy jsou opraveny ve verzích 1.35.5, 1.36.3 a 1.37.1, odkazy na tarbally a záplaty naleznete v oznámení.

Uživatelům se důrazně doporučuje aktualizovat na verzi 1.45.1 (nejnovější stabilní), 1.44.3 (starší verze) nebo 1.43.6 (starší verze s dlouhodobou podporou).

Jaké jsou problémy?

  • CVE-2021-44858: Funkce "zpět" (action=edit&undo=##&undoafter=###) umožňovala útočníkovi zobrazit obsah libovolných revizí bez ohledu na to, zda k tomu měl oprávnění. Toto bylo zjištěno i u akcí "mcrundo" a "mcrrestore" (action=mcrundo a action=mcrrestore).
  • CVE-2021-45038: Funkce "vrácení zpět" (action=rollback) mohla být předána jako speciálně vytvořený parametr, který útočníkovi umožňoval zobrazit obsah libovolných stránek bez ohledu na to, zda k tomu měl oprávnění.
  • CVE-2021-44857: Akce "mcrundo" a "mcrrestore" (action=mcrundo a action=mcrrestore) správně nekontrolovaly oprávnění k úpravám a umožňovaly útočníkovi vzít obsah libovolné revize a uložit jej na libovolnou stránku dle vlastního výběru. Toto se týká jak veřejných wikinách, tak i veřejných stránek na soukromých wikinách.

Nemám čas na opravu, jak to můžu vypnout?

Varování Varování: Pokud provozujete soukromou wiki , je nutné provést aktualizaci na MediaWiki verze 1.39.13 , 1.43.2 , 1.44.0 nebo novější, aby byla vaše wiki chráněna. Bezpečnostní zranitelnost (CVE-2025-6590) postihuje starší verze a umožňuje libovolnému uživateli prohlížet si všechny stránky na soukromých wikinách. Není k dispozici žádné alternativní řešení.[1]

Níže uvedené řešení již není považováno za bezpečné.

K vašemu LocalSettings.php přidejte následující:

$wgActions['mcrundo'] = false;
$wgActions['mcrrestore'] = false;

Pokud je vaše wiki soukromá (pro zobrazení stránek je nutné přihlášení), budete muset také nastavit:

$wgWhitelistRead = [];
$wgWhitelistReadRegexp = [];

Mělo by to plně deaktivovat zranitelný kód. Tyto změny budou fungovat i pro zranitelné verze MediaWiki, které jsou na konci jejich životnosti a nemají k dispozici opravu.

Pokud jste použili $wgWhitelistRead , abyste odhlášeným uživatelům umožnili zobrazit hlavní stránku s textem nápovědy, měli byste tento text nápovědy přesunout do zprávy MediaWiki:Loginreqpagetext, která se zobrazuje při chybě "vyžadováno přihlášení".

Byl jsem ovlivněn/a?

Pokud použijete rozšíření jako Lockdown nebo Whitelist Pages , abyste některé stránky znemožnili číst některým uživatelům, pravděpodobně se to dotkne i vás.

Které verze jsou zranitelné?

Všechny verze MediaWiki od verze 1.23.0 do 1.34.x a 1.35.x, 1.36.x, 1.37.x před opravami (viz horní část) jsou zranitelné vůči obcházení oprávnění pro čtení soukromé wiki (CVE-2021-44858, CVE-2021-45038).

Všechny verze MediaWiki od verze 1.32.0 do 1.34.x a 1.35.x, 1.36.x, 1.37.x před opravami (viz horní část) jsou zranitelné vůči obcházení oprávnění k úpravám (CVE-2021-44857).

Jak se tohle dlouhodobě opravuje?

Všechny akce kromě "zobrazení" nyní vyžadují explicitní uživatelské oprávnění "čtení". Je to podobné jako kontroly oprávnění používané v rozhraních Action API a REST. Pokud se v akcích najdou další zranitelnosti, nebudou alespoň zneužitelné pro nepřihlášené uživatele na soukromých wikinách.

Akce, které musí být použitelné na stránkách $wgWhitelistRead , mohou přepsat novou funkci Action::needsReadRight().

Jak zjistím, jestli někdo zneužil mou wiki?

Hledejte v protokolech přístupu hodnotu action=mcrundo nebo action=mcrrestore. Pokud jste výslovně nepovolili rozšíření, které používá revize s více obsahy, pro tyto akce neexistuje legitimní využití.

Dále hledejte požadavky typu action=edit&undo=###&undoafter=### a zkontrolujte, zda ID revizí patří k jinému názvu než k upravované stránce.

V případě chyby vrácení zpět hledejte action=rollback&from=..., kde parametr "from" představuje vyloučení šablony (například from={{:private page}}).

Tato chyba nezpůsobuje žádnou ztrátu dat, takže veškeré akce zápisu, které by útočník mohl provést, budou zaznamenány v historii stránky stejně jako všechny ostatní úpravy.

Kredit

Problém objevil uživatel Dylsss, mnohokrát mu děkujeme za identifikaci a nahlášení problému. Pokud v MediaWiki najdete chybu, podívejte se prosím na postup pro hlášení bezpečnostních chyb.