
Solução alternativa para CVE-2020-10663 (vulnerabilidade no json gem)
A gem json possui uma vulnerabilidade de segurança CVE-2020-10663. Ao analisar certos documentos JSON, a gem json pode ser coagida a criar objetos arbitrários no sistema de destino.
Os usuários são fortemente aconselhados a atualizar para json 2.3.0 ou superior.
Para usuários que não podem atualizar sua versão do json, esta gem (json_cve_2020_10663) aplica um monkey-patch na sua versão do json contra o CVE-2020-10663.
Observe que, se você estiver usando a versão atual do Rails 3.2 LTS ou 4.2 LTS, esta gem não é mais necessária.
json 1.7.7 ou posterior, mas anterior a 2.3.0.Adicione esta linha ao Gemfile da sua aplicação:
gem 'json_cve_2020_10663'
E então execute:
$ bundle
Ou instale você mesmo com:
$ gem install json_cve_2020_10663
Carregue a gem para corrigir a gem json:
require 'json_cve_2020_10663'
Observe que o Rails carrega automaticamente todas as gems do seu Gemfile quando sua aplicação é iniciada.
Você pode verificar se o patch foi aplicado executando o seguinte código no ambiente da sua aplicação:
JSON::GenericObject.json_creatable = true
JSON('{"json_class":"JSON::GenericObject"}').class
Se isso retornar Hash, o patch foi aplicado corretamente. Se retornar JSON::GenericObject, o patch não foi carregado.
Após clonar o repositório, execute bin/setup para instalar as dependências. Em seguida, execute rake spec para rodar os testes. Você também pode executar bin/console para um prompt interativo que permitirá experimentar.
Para instalar esta gem em sua máquina local, execute bundle exec rake install. Para lançar uma nova versão, atualize o número da versão em version.rb e então execute bundle exec rake release, que criará uma tag git para a versão, enviará os commits e tags do git e enviará o arquivo .gem para rubygems.org.
Esta gem está disponível como código aberto sob os termos da Licença MIT.