
Fornece uma solução alternativa rápida para o bug de segfault no Ruby (CVE-2009-1904)
Existe um bug de segfault na biblioteca big decimal do ruby que pode ser acionado por usuários que fornecem valores conhecidos como ruins. Se você deseja testar se sua aplicação está segura, execute example.rb. Este script deve sair normalmente, sem segfault.
A solução alternativa tem efeitos colaterais negativos. Especificamente, impede que você use BigDecimal para lidar com números grandes (mais de 255 dígitos) ou fornecer os números em notação científica (por exemplo, "5E6" para 5000000). Se você precisar desses recursos, deve atualizar para um ruby corrigido.
Recomenda-se fortemente que você atualize o ruby seguindo "as instruções no site do ruby":http://www.ruby-lang.org/en/news/2009/06/09/dos-vulnerability-in-bigdecimal/. Esta solução alternativa destina-se apenas para uso temporário.
Esta correção está disponível como uma gem do github. Para instalá-la, você deve executar os seguintes comandos:
$ gem sources -a http://gems.github.com $ sudo gem install NZKoz-bigdecimal-segfault-fix
Em seguida, no seu código adicione:
gem 'NZKoz-bigdecimal-segfault-fix' require 'bigdecimal-segfault-fix'
Para aplicar esta correção a uma aplicação Rails, você pode simplesmente copiar o arquivo bigdecimal-segfault-fix.rb para o diretório config/initializers.