Descubierto bug de PHP con 8 años de antigüedad

Una de dos: o me descubrían ya o empezaba a pedir la paga

Ocho años en el mundo del desarrollo es varios lustros en el equivalente del mundo real (si, esa cosa que hay más allá de las líneas de código). Por eso sorprende (por lo menos a mi) que ahora se haya descubierto un bug de PHP que lleva allí desde un commit de 2004. Vamos, que unos meses más y hace la comunión el bicho.

El bug en cuestión afecta a las instalaciones de PHP que usen el modo mod_cgi de Apache y viene a ser lo siguiente: si añades a una url parámetros sin que haya ningún signo ‘=’ (por ejemplo ‘?s’), te hace un bonito dump de tu código fuente. A partir de ahí, como siempre en estos casos, entra la malicia de cada uno.

La gente de PHP ha solucionado este bug con solera en las recientes actualizaciones 5.3.12 y 5.4.2 pero como reconocen que esto del mod_cgi es una cosa bastante pasada de moda y que es posible que la mayoría de las instalaciones afectadas sean tan vetustas que no merecen mucho la pena actualizar a unas versiones de PHP tan avanzadas, ofrecen una solución añadiendo un par de líneas similares a estas en la configuración de tu servidor:

RewriteCond %{QUERY_STRING} ^(%2d|-)[^=]+$ [NC]
RewriteRule ^(.*) $1? [L]

Vía | PHP.net
Imagen | Fotograma de la película ‘Bichos’ de Pixar
En Genbeta Dev | PHP 5.4 a fondo

Portada de Genbeta