
Workaround für CVE-2020-10663 (Sicherheitslücke im json gem)
Das json-Gem hat eine Sicherheitslücke CVE-2020-10663. Beim Parsen bestimmter JSON-Dokumente kann das json-Gem gezwungen werden, beliebige Objekte im Zielsystem zu erstellen.
Benutzern wird dringend empfohlen, auf json 2.3.0 oder höher zu aktualisieren.
Für Benutzer, die ihre Version von json nicht aktualisieren können, patcht dieses Gem (json_cve_2020_10663) Ihre json-Version gegen CVE-2020-10663.
Beachten Sie, dass dieses Gem nicht mehr erforderlich ist, wenn Sie die aktuelle Version von Rails 3.2 LTS oder 4.2 LTS verwenden.
json 1.7.7 oder später, aber früher als 2.3.0.Fügen Sie diese Zeile zur Gemfile Ihrer Anwendung hinzu:
gem 'json_cve_2020_10663'
Und führen Sie dann aus:
$ bundle
Oder installieren Sie es selbst mit:
$ gem install json_cve_2020_10663
Binden Sie das Gem ein, um das json-Gem zu patchen:
require 'json_cve_2020_10663'
Beachten Sie, dass Rails automatisch alle Gems in Ihrer Gemfile lädt, wenn Ihre App gestartet wird.
Sie können überprüfen, ob der Patch angewendet wurde, indem Sie den folgenden Code aus Ihrer Anwendungsumgebung ausführen:
JSON::GenericObject.json_creatable = true
JSON('{"json_class":"JSON::GenericObject"}').class
Wenn dies Hash zurückgibt, wurde der Patch korrekt angewendet. Wenn es JSON::GenericObject zurückgibt, wurde der Patch nicht geladen.
Nachdem Sie das Repository ausgecheckt haben, führen Sie bin/setup aus, um Abhängigkeiten zu installieren. Führen Sie dann rake spec aus, um die Tests auszuführen. Sie können auch bin/console für eine interaktive Eingabeaufforderung ausführen, die Ihnen Experimentieren ermöglicht.
Um dieses Gem auf Ihrem lokalen Rechner zu installieren, führen Sie bundle exec rake install aus. Um eine neue Version zu veröffentlichen, aktualisieren Sie die Versionsnummer in version.rb und führen Sie dann bundle exec rake release aus, wodurch ein Git-Tag für die Version erstellt, Git-Commits und Tags gepusht und die .gem-Datei auf rubygems.org hochgeladen wird.
Das Gem ist als Open Source unter den Bedingungen der MIT-Lizenz verfügbar.