28 oct 2011

MSA-11-0036: Messaging refresh vulnerability

Bonito nombre le pusieron al ataque de denegación de servicio que publiqué el pasado 10 de Septiembre en el blog. Reportado al foro de Moodle y revisado en el Tracker, la severidad del ataque era calificada como “Serious”, pues las repercusiones que podía provocar como comenté anteriormente, eran la caída del servidor, debido a la inundación de peticiones y posibles daños como el crasheo de la BD.

Las versiones vulnerables eran todas las conocidas hasta la fecha, anteriores a la 1.9.14. A pesar de que Moodle está desarrollando su versión 2.x, la anterior sigue puliéndose con actualizaciones continuas, siendo esta la más utilizada.

Según la descripción dada por Michael de Raadt, Manager del desarrollo de Moodle:

Topic:Message refreshing system may cause unlimited queries and DDos attack
Severity:Serious
Versions affected:< 1.9.14 (2.x not affected)
Reported by:Xavier Paz
Issue no.:MDL-29311
Solution:upgrade to 1.9.14
Changes (1.9):http://git.moodle.org/gw?p=moodle.git;a=commit;h=97f258fabb3ebfa7acc7c02cb59de92b01710f99
Description:

Users could change the wait parameter from message/refresh.php to zero to cause a denial of service attack.

¡Realmente lo más jodido es que aparezca la persona que movió mi tema al Tracker! ¿Y yo que pasa? ¡Qué copiar y pegar sabemos todos! ¡Sino que se lo digan a los desarrolladores del FIFA!

http://moodle.org/mod/forum/discuss.php?d=188318

Para la corrección manual que ha deseado publicar el equipo de desarrollo, tenemos esta alternativa similar a la que expuse.

Cerraremos de este modo el bucle infinito que conseguíamos, al modificar la URL de forma manual, gracias a la función ceil que redondeaba al número más alto entero resultante, se lograba el fallo. Así después de incorporar la actualización (0*1,2 = 0 → 0) terminaría siendo un entero positivo no vulnerable, gracias a la implementación de un simple if.

Además, aparecieron otras 6 vulnerabilidades para los que seguimos con la v1.X, lo cual se recomienda actualizar a todos aquellos que posean versiones anteriores a 1.9.14.

  • MSA-11-0031 - Fallo en las constantes de la API de formularios.
  • MSA-11-0032 - Problema de validación SSL de MNET.
  • MSA-11-0036 - Vulnerabilidad en el refresco de los mensajes.
  • MSA-11-0037 - Inyección en la edición de las secciones de curso.
  • MSA-11-0038 - Reforzada la protección contra inyecciones en base de datos.
  • MSA-11-0040 - Potencial revelado de información personal.
Saludos 4n4les! ;)

3 comentarios:

  1. Gracias Juanan! pero lo que habéis montado haciendo a Flu! sí que es grande! =)

    ResponderEliminar
  2. [...] Nuestro blogger Germán descubrió una grave vulnerabilidad en Moodle, y en este post nos cuenta su historia: MSA-11-0036: Messaging refresh vulnerability [...]

    ResponderEliminar