json Gem for Ruby Unsafe Object Creation Vulnerability (additional fix)
There is an unsafe object creation vulnerability in the json gem bundled with
Ruby. This vulnerability has been assigned the CVE identifier CVE-2020-10663.
We strongly recommend upgrading the json gem.
Details
When parsing certain JSON documents, the json gem (including the one bundled
with Ruby) can be coerced into creating arbitrary objects in the target system.
This is the same issue as CVE-2013-0269. The previous fix was incomplete, which
addressed JSON.parse(user_input), but didn’t address some other styles of JSON
parsing including JSON(user_input) and JSON.parse(user_input, nil).
See CVE-2013-0269 in detail. Note that the issue was exploitable to cause a
Denial of Service by creating many garbage-uncollectable Symbol objects, but
this kind of attack is no longer valid because Symbol objects are now
garbage-collectable. However, creating arbitrary objects may cause severe
security consequences depending upon the application code.
Spelling and grammar fixes for comments. Pull request #191 by Josh
Kline.
Enhance generic JSON and #generate docs. Pull request #347 by Victor
Shepelev.
Add :nodoc: for GeneratorMethods. Pull request #349 by Victor Shepelev.
Baseline changes to help (JRuby) development. Pull request #371 by Karol
Bucek.
Add metadata for rubygems.org. Pull request #379 by Alexandre ZANNI.
Remove invalid JSON.generate description from JSON module rdoc. Pull
request #384 by Jeremy Evans.
Test with TruffleRuby in CI. Pull request #402 by Benoit Daloze.
Rdoc enhancements. Pull request #413 by Burdette Lamar.
Fixtures/ are not being tested... Pull request #416 by Marc-André
Lafortune.
Use frozen string for hash key. Pull request #420 by Marc-André
Lafortune.
Added :call-seq: to RDoc for some methods. Pull request #422 by Burdette
Lamar.
Small typo fix. Pull request #423 by Marc-André Lafortune.
2019-12-11 (2.3.0)
Fix default of create_additions to always be false for JSON(user_input)
and JSON.parse(user_input, nil).
Note that JSON.load remains with default true and is meant for internal
serialization of trusted data. [CVE-2020-10663]
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language
- `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme
Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):
- Update frequency (including time of day and day of week)
- Pull request limits (per update run and/or open at any time)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)
Bumps json from 2.1.0 to 2.5.1. This update includes a security fix.
Vulnerabilities fixed
Sourced from The Ruby Advisory Database.
Changelog
Sourced from json's changelog.
Commits
9dc86f9
Bump version to 2.5.191f5fdf
Merge pull request #459 from flori/backword-compatible5910bef
Added backword compatible for < json-2.5ea58503
Bump version to 2.5.09e73da3
Merge pull request #457 from flori/prepare-3.00c446fa
Workaround for JRuby951c7d1
Drop to tests with too old Rubyd1a341f
Skip tests with JRuby platformdece237
Guard for Ruby 3.0147cbfa
Use 2.7 in TravisDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Pull request limits (per update run and/or open at any time) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired)