GHSA-3m6g-2423-7cp3 CVE-2026-33210
Ruby JSON has a format string injection vulnerability
- Severity
- 0.0 / 10
- Critical · CVSS 4.0
- Exploit chance (EPSS)
- 0.87%
- Chance of exploitation in the next 30 days. Higher than 58.90% of scored vulnerabilities.
- Known exploited
- No
- Not in CISA's catalog
- Weakness
- CWE-134 Use of Externally-Controlled Format String
- Fix
2.19.2- Upgrade json to this version or later
Description
Impact
A format string injection vulnerability than that lead to denial of service attacks or information disclosure, when the allow_duplicate_key: false parsing option is used to parse user supplied documents.
This option isn't the default, if you didn't opt-in to use it, you are not impacted.
Patches
Patched in 2.19.2.
Workarounds
The issue can be avoided by not using the allow_duplicate_key: false parsing option.
Affected versions
RubyGems
| Package | Vulnerable | Fixed in |
|---|---|---|
| json | >= 2.18.0, < 2.19.2 |
2.19.2 |
| json | >= 2.16.0, < 2.17.1.2 |
2.17.1.2 |
| json | >= 2.14.0, < 2.15.2.1 |
2.15.2.1 |
How to fix
Move to the fixed version or later with your package manager, update the lockfile, and run your tests. If the package only arrives through another dependency, upgrade that dependency first. If none of its releases pulls a fixed version yet, force the version with your package manager's override.
json RubyGems → 2.19.2
- bundler
bundle update json # Gemfile: gem "json", ">= 2.19.2"
Severity breakdown
CVSS 4.0 0.0
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:N/VA:H/SC:N/SI:N/SA:N
- Attack vector
- Network
- Attack complexity
- Low
- Attack requirements
- Present
- Privileges required
- None
- User interaction
- None
- Confidentiality (vulnerable system)
- Low
- Integrity (vulnerable system)
- None
- Availability (vulnerable system)
- High
- Confidentiality (subsequent systems)
- None
- Integrity (subsequent systems)
- None
- Availability (subsequent systems)
- None
CVSS 3.1 9.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H
- Attack vector
- Network
- Attack complexity
- Low
- Privileges required
- None
- User interaction
- None
- Scope
- Unchanged
- Confidentiality
- High
- Integrity
- None
- Availability
- High
Weakness
CWE-134: Use of Externally-Controlled Format String
The product uses a function that accepts a format string as an argument, but the format string originates from an external source.
How to prevent it
- Requirements: Choose a language that is not subject to this flaw.
- Implementation: Ensure that all format string functions are passed a static string which cannot be controlled by the user, and that the proper number of arguments are always sent to that function as well. If at all possible, use functions that do not support the %n operator in format strings. [REF-116] [REF-117]
- Build and Compilation: Run compilers and linkers with high warning levels, since they may detect incorrect usage.
References
Advisories
Packages
Other links
- github.com/ruby/json/security/advisories/GHSA-3m6g-2423-7cp3
- github.com/rubysec/ruby-advisory-db/blob/master/gems/json/CVE-2026-33210.yml
- access.redhat.com/errata/RHSA-2026:20596
- access.redhat.com/errata/RHSA-2026:20606
- access.redhat.com/errata/RHSA-2026:57565
- access.redhat.com/security/cve/CVE-2026-33210
- bugzilla.redhat.com/show_bug.cgi
- security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-33210.json
Timeline
- Published
- Last updated by the source
- Latest EPSS score
Related advisories
| Advisory | Severity | Why it's related |
|---|---|---|
| GHSA-9hj4-r449-hfvc Ruby JSON: JSON::ResumableParser#partial_value dereferences a freed input buffer and crashes on truncated duplicate-key streams | High | Also affects json |
| GHSA-x2f5-4prf-w687 Ruby json: JSON generator heap buffer overflow when streaming to an IO | Low | Also affects json |
| GHSA-9m3q-rhmv-5q44 Out-of-bounds Read in Ruby JSON Parser | High | Also affects json |
| GHSA-jphg-qwrw-7w9g Unsafe object creation in json RubyGem | High | Also affects json |
| GHSA-x457-cw4h-hq5f JSON gem has Improper Input Validation vulnerability | High | Also affects json |
| GHSA-w96v-gf22-crwp n8n: Webhook Node IP Whitelist Bypass via Partial String Matching | Medium | Same weakness, CWE-134 |
| GHSA-9ccg-6pjw-x645 ImageMagick has a Format String Bug in InterpretImageFilename leads to arbitrary code execution | High | Same weakness, CWE-134 |
| GHSA-q3gg-m8hr-h4x4 Externally Controlled Format String in Scripting Functions | Critical | Same weakness, CWE-134 |
MergeHarbor checks every repository's dependencies against this database, ranks what matters by exploitability and reachability, routes it to the owning team and opens the fix pull request.
Check your repos with MergeHarbor