CSIRTCV

Está usted visitando una publicación en la hemeroteca de CSIRT-CV.
Para acceder al portal y contenido actual, visite https://www.csirtcv.gva.es

16/10/2012

Vulnerabilidad en la creación de archivos en Ruby

Se ha detectado un problema de seguridad en Ruby que podría permitir a un atacante hacer que el programa cree inadvertidamente archivos no deseados en el sistema en el que funcione el código.

Riesgo: Medio

La vulnerabilidad, detectada por Peter Bex y con CVE-2012-4522 reside en los métodos de la clase IO. Para abrir un archivo, al método open (IO#open), se le deben proporcionar varios parámetros, entre ellos el nombre del archivo a abrir, este método a su vez lo proporciona a capas inferiores del sistema operativo. En una situación normal se le proveerá de un nombre estándar como 'file.txt', pero un atacante podría proporcionar un nombre especialmente manipulado y que contuviera el caracter NUL, por ejemplo 'file\0.txt' (\0 es la representación de NUL).

En este último caso, el método IO#open los aceptaría como válido y se lo proporcionaría a una capa inferior del sistema operativo, crearía el archivo llamado 'file', ya que el \0 para el sistema operativo representa el fin de cadena y lo toma como tal.

La publicación oficial de la vulnerabilidad de Ruby menciona el método open, aunque más métodos de la misma clase o de otras relacionadas pueden estar afectados.

Sistemas Afectados:

Los intérpretes de Ruby afectados son los anteriores a la versión 1.9.3 (estables) y de la 2.0.0 en desarrollo.

Referencias:

CVE-2012-4522

Solución:

Actualizar a la última versión desde: http://www.ruby-lang.org/en/downloads/

Notas:
Ruby file creation due in insertion of illegal NUL character - SECLISTS
http://seclists.org/oss-sec/2012/q4/72
Unintentional file creation caused by inserting a illegal NUL character - - - Ruby

http://preview.ruby-lang.org/en/news/2012/10/12/poisoned-NUL-byte-vulnerability/

Fuente: Hispasec una-al-día

CSIRT-CV