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 |
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.