Jump to content

2021-12 liberación de seguridad/FAQ

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

Se han encontrado una serie de vulnerabilidades en MediaWiki, que permiten a un atacante filtrar contenidos de páginas de wikis privadas y eludir los permisos de edición. El principal vector de este wiki-leak, es el uso de acciones vulnerables, en páginas que se enumeran en el siguiente listado $wgWhitelistRead y, por lo tanto, son de acceso público. MediaWiki actualmente, solo permite que la función "ver", sea públicamente accesible en las páginas por defecto. Estos problemas se corrigen en versiones 1.35.5, 1.36.3, y 1.37.1, consulte el announcement para obtener enlaces a archivos tar y parches.

¿Cuáles son los problemas?

  • CVE-2021-44858: La función "deshacer" (action=edit&undo=##&undoafter=###), permitió a un atacante ver el contenido de revisiones arbitrarias,sin importar si tenía permisos para hacerlo. Esto también, se encontró en las acciones "mcrundo" and "mcrrestore" (action=mcrundo and action=mcrrestore).
  • CVE-2021-45038: La función de "rollback" (action=rollback), podría pasar un parámetro especialmente diseñado, que permitía a un atacante ver el contenido de páginas arbitrarias, independientemente de si tenían permisos para hacerlo.
  • CVE-2021-44857: Las acciones "mcrundo" and "mcrrestore" (action=mcrundo and action=mcrrestore), no verificaron adecuadamente los permisos de edición, y permitió a un atacante tomar el contenido de cualquier revisión arbitraria y guardarlo en cualquier página de su elección. Esto afecta, tanto a las wikis públicas como a las páginas públicas de las wikis privadas.

No tengo tiempo para parches, ¿cómo desactivo esto?

Agregue lo siguiente, a su archivo LocalSettings.php:

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

Si su wiki es privado (requiere inicio de sesión, para ver las páginas), también deberá configurar:

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

Debería deshabilitar completamente el código vulnerable. Estos cambios, también funcionarán para las versiones vulnerables de MediaWiki, que se encuentren al final de su vida útil y que no tienen un parche disponible.

Si usted usa $wgWhitelistRead para permitir a los usuarios desconectados ver la página principal con texto de ayuda, en su lugar, debe mover ese texto de ayuda al mensaje de texto MediaWiki:Loginreqpagetext, que se muestra en el error, "se requiere inicio de sesión".

¿Como me afecta?

Si utiliza una extensión como Lockdown o Whitelist Pages para hacer que algunas páginas sean ilegibles para algunos usuarios, es probable que usted también se vea afectado.

¿Qué versiones son vulnerables?

Todas las versiones de MediaWiki, desde la 1.23.0 hasta la 1.34.x, y las versiones 1.35.x, 1.36.x y 1.37.x anteriores a los arreglos (véase the top section), son vulnerables a las omisiones de permisos de lectura de wikis privados (CVE-2021-44858, CVE-2021-45038).

Todas las versiones de MediaWiki, desde la 1.23.0 hasta la 1.34.x, y las versiones 1.35.x, 1.36.x y 1.37.x anteriores a los arreglos (véase the top section), son vulnerables a las omisiones de permisos de lectura de wikis privados (CVE-2021-44858, CVE-2021-45038).

¿Cómo se soluciona esto a largo plazo?

Todas las acciones, excepto "ver", ahora requieren un derecho de usuario explícito de "lectura". Esto es similar, a las comprobaciones de permisos utilizadas en las API Action y REST. Si se encuentran más vulnerabilidades en las acciones, al menos no podrán ser explotadas por usuarios que no hayan iniciado sesión en wikis privados.

Las acciones que pueden utilizarse en las páginas $wgWhitelistRead , pueden anular la nueva función Action::needsReadRight().

¿Cómo puedo ver, si alguien lo aprovechó en mi wiki?

Busque action=mcrundo o action=mcrrestore en sus registros de acceso. A menos que haya habilitado específicamente una extensión, que utiliza revisiones de contenido múltiple multi-content revisions, no existe un uso legítimo para estas acciones.

Adicionalmente busque solicitudes action=edit&undo=###&undoafter=### y verifique si los ID de revisión, pertenecen a un título diferente al de la página que se está editando.

Para el error de "rollback", busque action=rollback&from=... donde el parámetro "from" es una transclusión de plantilla (por ejemplo, from={{:private page}}).

Este error, no causa ninguna pérdida de datos, por lo que cualquier acción de escritura que un atacante podría haber realizado, se registrará en el historial de la página como todas las demás ediciones.

Créditos

El problema fue descubierto por Dylsss, muchas gracias por identificar e informar el problema. Si encuentra un error en MediaWiki, consulte el proceso para reporting security bugs (Informar errores de seguridad).