Hay una vulnerabilidad no intencional al crear un directorio con la
librería tmpdir incluida en Ruby en Windows.  Y también hay una
vulnerabilidad no intencional al crear un archivo con la librería tempfile
incluida en Ruby en Windows, porque usa tempdir internamente. A esta
vulnerabilidad se le ha asignado el identificador CVE
[CVE-2021-28966](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-28966).

## Detalles

El método `Dir.mktmpdir` introducido por la librería tmpdir acepta
el prefijo y el sufijo del directorio que se crea como primer parámetro.
El prefijo puede contener especificadores de directorios relativos "..\",
así que este método puede usarse para apuntar a cualquier directorio.
Entonces si un script acepta una entrada externa como prefijo, y el directorio
destino tiene permisos no apropiados o el proceso ruby tiene privilegios
no apropiados, el atacante puede crear un directorio o un archivo en
cualquier directorio.

Este es el mismo problema de
[CVE-2018-6914](https://www.ruby-lang.org/en/news/2018/03/28/unintentional-file-and-directory-creation-with-directory-traversal-cve-2018-6914/),
pero el arreglo anterior resultó incompleto en Windows.

Todos lo usuarios que corren una de las versiones afectadas deben
actualizar de inmediato.

## Versiones afectadas

* Ruby 2.7.2 o anteriores
* Ruby 3.0.0

## Creditos

Agradecimientos a [Bugdiscloseguys](https://hackerone.com/bugdiscloseguys)
por descubrir el problema.

## Historia

* Publicado originalmente el 2021-04-05 a las 12:00:00 (UTC)
