
Contournement de CVE-2020-10663 (vulnérabilité dans le gem json)
La gem json présente une vulnérabilité de sécurité CVE-2020-10663. Lors de l'analyse de certains documents JSON, la gem json peut être contrainte à créer des objets arbitraires dans le système cible.
Il est fortement recommandé aux utilisateurs de mettre à jour vers json 2.3.0 ou une version ultérieure.
Pour les utilisateurs qui ne peuvent pas mettre à jour leur version de json, ce gem (json_cve_2020_10663) applique un monkey-patch à votre version de json contre CVE-2020-10663.
Notez que si vous utilisez une version actuelle de Rails 3.2 LTS ou 4.2 LTS, ce gem n'est plus nécessaire.
json 1.7.7 ou ultérieur, mais antérieur à 2.3.0.Ajoutez cette ligne au Gemfile de votre application :
gem 'json_cve_2020_10663'
Et exécutez ensuite :
$ bundle
Ou installez-le vous-même avec :
$ gem install json_cve_2020_10663
Exécutez un require du gem pour patcher la gem json :
require 'json_cve_2020_10663'
Notez que Rails fait automatiquement un require de tous les gems de votre Gemfile au démarrage de votre application.
Vous pouvez vérifier que le patch a été appliqué en exécutant le code suivant depuis l'environnement de votre application :
JSON::GenericObject.json_creatable = true
JSON('{"json_class":"JSON::GenericObject"}').class
Si cela retourne Hash, le patch a été appliqué correctement. Si cela retourne JSON::GenericObject, le patch n'a pas été chargé.
Après avoir cloné le dépôt, exécutez bin/setup pour installer les dépendances. Ensuite, exécutez rake spec pour lancer les tests. Vous pouvez également exécuter bin/console pour une invite interactive qui vous permettra d'expérimenter.
Pour installer ce gem sur votre machine locale, exécutez bundle exec rake install. Pour publier une nouvelle version, mettez à jour le numéro de version dans version.rb, puis exécutez bundle exec rake release, ce qui créera un tag git pour la version, poussera les commits et tags git, et enverra le fichier .gem sur rubygems.org.
Le gem est disponible en open source selon les termes de la licence MIT.