
Proporciona una solución rápida para el error de segfault en Ruby (CVE-2009-1904)
h1. Corrección de Segfault en BigDecimal
Hay un bug de segfault en la librería BigDecimal de Ruby que puede ser desencadenado por usuarios que proporcionen valores conocidos maliciosos. Si desea probar si su aplicación es segura, ejecute +example.rb+. Este script debería finalizar normalmente, no generar un segfault.
La solución alternativa tiene efectos secundarios negativos. En concreto, le impide usar BigDecimal para manejar números grandes (más de 255 dígitos) o proporcionar los números en notación científica (por ejemplo, "5E6" para 5000000). Si necesita esas características, debe actualizar a una versión de Ruby parcheada.
Se le recomienda encarecidamente actualizar Ruby siguiendo "las instrucciones en el sitio de Ruby":http://www.ruby-lang.org/en/news/2009/06/09/dos-vulnerability-in-bigdecimal/. Esta solución alternativa está destinada únicamente para uso temporal.
h2. Versiones de Ruby afectadas:
h3. Serie 1.8
h3. Serie 1.9
h2. Instrucciones de instalación
h3. Instalación como gema
Esta corrección está disponible como una gema desde github. Para instalarla, ejecute los siguientes comandos:
$ gem sources -a http://gems.github.com $ sudo gem install NZKoz-bigdecimal-segfault-fix
Luego, en su código agregue:
gem 'NZKoz-bigdecimal-segfault-fix' require 'bigdecimal-segfault-fix'
h3. Instalación mediante el inicializador de Rails
Para aplicar esta corrección a una aplicación Rails, simplemente copie el archivo +bigdecimal-segfault-fix.rb+ en su directorio config/initializers.