Descripción: | Desinstalación arbitraria de mods |
Descubierto por: | WHK@elhacker.net |
Código vulnerable: | Sources/Packages.php:1167 |
URL Vulnerable: | index.php?action=admin;area=packages;sa=flush |
PoC: | N/A |
Afecta a: | SMF 2.0 RC2 |
Descripción
Voy a comenzar explicando la prueba de concepto directamente:
http://localhost/smf2.0/index.php?action=admin;area=packages;sa=flush
Primero que nada decir que esta acción no requiere de ningún token por lo
tanto puede ser ejecutado de forma arbitraria y consiste en que te elimina
todo el listado de paquetes instalados en el archivo que contiene todas tus
instalaciones "installed.list".
Si por ejemplo tienes instalado 4 mods los cuales modificaron tu foro ya no
podrás desintalarlos porque no figurarán instalados y los cambios en el
foro permanecerán modificados, eso quiere decir que si intentas reinstalar
el mismo mod no podrás porque los cambios ya están hechos y por lo tanto
tampoco puedes desintalarlos ni eleiminarlos.
Esto puede afectar por completo el funcionamiento de tu foro al intentar
realizar una actualización o cambio en un paquete nuevo ya que las
busquedas de reemplazo de strings en los archivos del foro ya no serán los
mismos.
La única solución sería restaurar un respaldo creado con anterioridad o
volver a instalar tu foro nuevamente con cada mod.
El fallo se produce en el archivo Sources/Packages.php linea 1167 en la
función "FlushInstal" ya que desde que es llamada la función hasta que
finaliza en ningúna parte se solicita un token de verificación para evitar
una ejecución arbitraria de esta acción.
http://code.google.com/p/smf2-review/source/browse/trunk/Sources/Packages.php#1167