lunes, 21 de enero de 2008

XSS bug for MoinMoin


''' ENERO 21 '''


Me dio por revizar un poco el codigo de moinmoin, ya que el-directorio esta montado sobre este y yo tengo un wiki de estos instalado en el trabajo.

MoinMoin esta en la version 1.6.0 estable, asi que pilas con todas las versiones 1.5.x.

Hablando con el desarrollador me dijo que pronto sacara la version 1.5.9 para dejar la 1.5.8, en cuanto se parchen los ultimos bugs reportados.

Debian inestable esta en la version :

debian:~# dpkg -l | grep moinmoin
ii moinmoin-common 1.5.8-5 Python clone of WikiWiki - common data
ii python-moinmoin 1.5.8-5 Python clone of WikiWiki - library
debian:~#

Donde esta el maintainer?

aqui fue donde hice las pruebas.

El bug es un XSS y aplica hasta la ultima version de MoinMoin estable, lo raro del asunto es que esta en la entrada principal y hasta ahora nadie lo habia visto. Entre mas comun sea el archivo a explotar con XSS, mayor es la posibilidad de tener exito. Imaginense a todo el mundo redireccionado a loguearse al wiki, pero realmente estarian entregando sus cookies al servidor atacante (no entendio?, lea mas sobre XSS).

{{{
********************************************************************************************
********************************************************************************************

Software: MoinMoin v. 1.5.x and v. 1.6.0 (http://moinmoin.wikiwikiweb.de/)

MoinMoin is an advanced, easy to use and extensible WikiEngine with a large
community of users. Said in a few words, it is about collaboration on easily editable web pages.
MoinMoin is Free Software licensed under the GPL.

(moinmoin actually is on 1.6.0 stable, so USE IT!)

Author: a nonroot colombian user

Vuln Type: XSS

Date: people of moinmoin was informed 3 days ago, there exist a patch for this bug
(http://hg.moinmo.in/moin/1.5/rev/2f952fa361c7)

tested on debian unstable, the moinmoin of debian is so old, where are the maintainer?
tested on moinmoin running like standalone

********************************************************************************************
********************************************************************************************
}}}

La parte vulnerable -> en el archivo login.py, lineas 43 y 48

{{{
...
39 name = form.get('name', [''])[0]
40 if not user.isValidName(request, name):
41 error = _("""Invalid user name {{{'%s'}}}.
42 Name may contain any Unicode alpha numeric character, with optional one
43 space between words. Group page name is not allowed.""") % name
44
45 # Check that user exists
46 elif not user.getUserId(request, name):
47 error = _('Unknown user name: {{{"%s"}}}. Please enter'
48 ' user name and password.') % name
49
...
}}}

El bug ya fue confirmado y parchado: http://hg.moinmo.in/moin/1.5/rev/2f952fa361c7

pd: se me olvidaba decir que moinmoin esta programado en python.

Entradas populares