Directorio de plugins de WordPress.org

En general cuando hablamos de vulnerabilidades relacionadas con WordPress hablamos del núcleo, de plugins e incluso themes. Pero hay otro lugar, la web WordPress.org.

Y es que el equipo de RIPS hizo un análisis del código de la web, que también es público, y detectaron una posibilidad de inyección de scripts en el plugin que gestiona el directorio de plugins (valga la redundancia) de la web.

Cuando un desarrollador sube un plugin al repositorio SVN, el plugin va acompañado de lgunos lugares en los que se informa de la versión, en este caso el propio plugin y el fichero readme.txt.

Para mostrar ese valor, WordPress lee la información almacenada en la base de datos:

'<strong>' . get_post_meta( $post->ID, 'version', true ) . '</strong>' ); ?></li>

El valor del ID de este elemento viene dado por una lectura previa del importador:

namespace WordPressdotorg\Plugin_Directory\CLI;
class Import {
  public function import_from_svn( $plugin_slug ) {
    $data = $this->export_and_parse_plugin( $plugin_slug );
    $headers = $data['plugin_headers'];
    update_post_meta( $plugin->ID, 'version', wp_slash( $headers->Version ) );

En este caso la única función que se utiliza en el sistema para limpiar es wp_slash(), pero esta función únicamente añade contrabarras a los contenidos, sin hacer ningún tipo de limpieza más.

Si un desarrollador con un plugin en el repositorio ponía un script donde la versión, se hubiera ejecutado en el código de su página.

Esto ya ha sido corregido en una actualización ya publicada y disponible en el TRAC.

Deja un comentario