Fallo crítico en Wordpress

 

 

El popular sistema de gestión de contenidos Wordpress -utilizado por miles de weblogs- presenta un problema que permite la inyección de código PHP arbitrario y afecta a su versión más reciente (1.5.1.3).

Según acaba de informar Secunia, el fallo radica en el incorrecto manejo de las entradas realizadas por cookies mediante el parámetro cache_lastpostdate, siempre que register_globals esté activado...

De momento no existe parche.

Comentarios

Selecciona arriba tu forma preferida de visualizar los comentarios y pulsa el botón para guardar tu elección para próximas visitas (sólo si eres usuario registrado).
rzoia's picture

register_globals


Según el manual de PHP, correr PHP con register_globals=on es, por lo menos, imprudente. Y por eso, desde hace varias versiones, la configuración por defecto es off. Considerando que para usar WordPress es necesario instalarlo en algún servidor, para protegerse de esta vulnerabilidad basta asegurarse de que el servidor en cuestión no tiene register_globals habilitado.

Del website de php (http://www.php.net/register_globals):
When on, register_globals will inject (poison) your scripts will all sorts of variables, like request variables from HTML forms. This coupled with the fact that PHP doesn't require variable initialization means writing insecure code is that much easier. It was a difficult decision, but the PHP community decided to disable this directive by default. When on, people use variables yet really don't know for sure where they come from and can only assume.

Roberto Zoia

Roberto Zoia

fern's picture

Sí, pero...


La configuración de register_globals que importa -como bien dices- es la del servidor y pocos usuarios disponen de acceso y permisos para editar php.ini.

rzoia's picture

Fallo en wordpress, register_globals


Por supuesto, es cierto. De hecho el hosting que tengo contratado no me permite cambiar el php.ini. Algunas soluciones:

  • En este link en SitePoint explica cómo de-registrar los globals en php. Se puede añadir al inicio del index.php del Wordpress, mientras sacan un parche.
  • También se puede crear un archivo .htaccess (o añadir al existente) con php_flag register_globals off en el directorio en el directorio en que está instalado Wordpress, pero si el servidor corre PHP como cgi (y no como módulo de Apache), entonces no funcionará.

Roberto Zoia

Roberto Zoia

fern's picture

Excelente info


Roberto:

Muchas gracias por tu post. Seguro que nos ayudará a muchos.