Skip to content

GHSA-3m6g-2423-7cp3 CVE-2026-33210

Ruby JSON has a format string injection vulnerability

Critical RubyGems
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

PackageVulnerableFixed 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

Timeline

  1. Published
  2. Last updated by the source
  3. Latest EPSS score
AdvisorySeverityWhy 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
Is this in your code?

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