Lançamento de segurança de dezembro de 2021 / Perguntas frequentes

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

Uma série de vulnerabilidades foi encontrada no MediaWiki que permite a um invasor vazar o conteúdo de páginas de wikis privados e contornar permissões de edição. Uma série de vulnerabilidades foi encontrada no MediaWiki que permite a um invasor vazar o conteúdo de páginas de wikis privados e contornar permissões de edição. Agora o MediaWiki torna apenas a ação de ‘visualização’ publicamente acessível em páginas em $wgWhitelistRead por padrão.

Esses problemas foram corrigidos nas versões 1.35.5, 1.36.3 e 1.37.1, consulte o [anúncio https://lists.wikimedia.org/hyperkitty/list/mediawiki-announce@lists.wikimedia.org/message/QEN3EK4JXAVJMJ5GF3GYOAKNJPEKFQYA/] para links de tarballs e patches.

Quais são os problemas?

  • CVE-2021-44858: O recurso ‘desfazer’ (action=edit&undo=##&undoafter=###) permitia que um invasor visualizasse o conteúdo de revisões arbitrárias, independentemente de ter permissão para fazê-lo. Isso também foi encontrado nas ações ‘mcrundo’ e ‘mcrrestore’ (action=mcrundo e action=mcrrestore).
  • CVE-2021-45038: O recurso ‘rollback’ (action=rollback) poderia receber um parâmetro especialmente criado que permitia a um invasor visualizar o conteúdo de páginas arbitrárias, independentemente de ter permissão para fazê-lo.
  • CVE-2021-44857: As ações ‘mcrundo’ e ‘mcrrestore’ (action=mcrundo e action=mcrrestore) não verificavam adequadamente as permissões de edição e permitiam que um invasor pegasse o conteúdo de qualquer revisão arbitrária e o salvasse em qualquer página de sua escolha. Isso afeta tanto wikis públicas quanto páginas públicas em wikis privadas.

Eu não tenho tempo para aplicar o patch, como desabilito isso?

Adicione o seguinte ao seu LocalSettings.php:

$wgActions['mcrundo'] = false;
$wgActions['mcrrestore'] = false;
Se o seu wiki é privado (requer login para visualizar páginas), você também precisará definir:
$wgWhitelistRead = [];
$wgWhitelistReadRegexp = [];

Isso deve desabilitar completamente o código vulnerável. Essas alterações também funcionarão para versões do MediaWiki vulneráveis ​​e sem suporte que não possuem um patch disponível.

Se você usou $wgWhitelistRead para permitir que usuários não logados vissem a página principal com texto de ajuda, em vez disso, mova esse texto de ajuda para a mensagem MediaWiki:Loginreqpagetext, que é exibida no erro ‘login necessário’.

Eu fui afetado?

  • Se o seu wiki é público (qualquer pessoa pode ler páginas): sim

Se o seu wiki é privado e $wgWhitelistRead ou $wgWhitelistReadRegexp tem pelo menos uma página: sim

Se você usa uma extensão como Lockdown ou Whitelist Pages para tornar algumas páginas ilegíveis para alguns usuários, também é provável que seja afetado.

Quais versões são vulneráveis?

Todas as versões do MediaWiki desde 1.23.0 até 1.34.x e 1.35.x, 1.36.x, 1.37.x antes das correções (veja o topo da seção #contentSub), são vulneráveis ​​às violações de permissões de leitura de wikis privados (CVE-2021-44858, CVE-2021-45038).

Todas as versões do MediaWiki desde 1.32.0 até 1.34.x, e 1.35.x, 1.36.x, 1.37.x antes das correções (veja a seção superior), são vulneráveis à violação de permissões de edição (CVE-2021-44857).

Como isso está sendo corrigido a longo prazo?

Todas as ações, exceto “visualizar”, agora exigem um direito de usuário “ler” explícito. Isso é semelhante às verificações de permissão usadas nas APIs de Ação e REST. Se forem encontradas mais vulnerabilidades nas ações, pelo menos elas não serão exploráveis por usuários desconectados em wikis privados.

Ações que precisam ser usadas em páginas $wgWhitelistRead podem substituir a nova função Action::needsReadRight().

Como posso ver se alguém explorou isso no meu wiki?

Procure por action=mcrundo ou action=mcrrestore em seus registros de acesso. A menos que você tenha habilitado especificamente uma extensão que use revisões de conteúdo múltiplo, não há uso legítimo para essas ações.

Além disso, procure por solicitações action=edit&undo=###&undoafter=### e verifique se os IDs de revisão pertencem a um título diferente da página que está sendo editada.

Para o bug de reversão, procure por action=rollback&from=... onde o parâmetro “de” é uma transclusão de modelo (por exemplo, from={{:private page}}).

Este bug não causa perda de dados, então todas as ações de gravação que um invasor poderia ter tomado serão registradas no histórico da página como todas as outras edições.

== Crédito ==

O problema foi descoberto por Dylsss, muitos agradecimentos a eles por identificar e relatar o problema. Se você encontrar um bug no MediaWiki, consulte o processo para relatar bugs de segurança.