CVE-2018-16396: Banderas de contaminación no propagadas en Array#pack y String#unpack con algunas directivas

Publicado por usa el 2018-10-17
Traducción de vtamara

Con algunos formatos de Array#pack y String#unpack, las banderas de contaminación (tainted) de los datos originales no se propagan a la cadena/arreglo que se retorna. A esta vulnerabilidad se le ha asignado el identificador CVS CVE-2018-16396.

Detalles

El método Array#pack convierte el arreglo que recibe en una cadena con un formato especificado. Si el arreglo recibido contiene objetos contaminados, la cadena retornada también debe marcarse como contaminada. El método String#unpack que convierte una cadena en un arreglo también debería propagar la bandera de contaminación a los objetos del arreglo que se retorna. Pero, con las directivas B, b, H y h, las banderas de contaminación no se propagan. Asi, que si un script procesa una entrada no confiable con Array#pack y/o String#unpack y chequea su confiabilidad con las banderas de contaminación, el chequeo podría resultar errado.

Todos los usuarios que corran una versión afectada deberían actualizar de inmediato.

Versiones afectadas

  • Serie Ruby 2.3: 2.3.7 y anteriores
  • Serie Ruby 2.4: 2.4.4 y anteriores
  • Serie Ruby 2.5: 2.5.1 y anteriores
  • Serie Ruby 2.6: 2.6.0-preview2 y anteriores
  • Anteriores la revisión r65125 del trunk

Credito

Agradecimientos a Chris Seaton por reportar este problema.

Historia

  • Publicado originalmente el 2018-10-17 14:00:00 (UTC)

Noticias recientes

Publicado Ruby 4.0.0 preview3

Nos complace anunciar la publicación de Ruby 4.0.0-preview3. Ruby 4.0 introduce Ruby::BOX y “ZJIT”, y agrega muchas mejoras.

Publicado por naruse el 2025-12-18

Publicación de Ruby 4.0.0 preview2

Nos complace anunciar el lanzamiento de Ruby 4.0.0-preview2. Ruby 4.0 actualiza su versión de Unicode a 17.0.0, entre otras novedades.

Publicado por naruse el 2025-11-17

Más noticias...