{"api_version":"1","generated_at":"2026-07-04T09:17:14+00:00","cve":"CVE-2026-54696","urls":{"html":"https://cve.report/CVE-2026-54696","api":"https://cve.report/api/cve/CVE-2026-54696.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-54696","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-54696"},"summary":{"title":"Ruby JSON: JSON generator heap buffer overflow when streaming to an IO","description":"Ruby JSON is a JSON implementation for Ruby. Versions 2.9.0 through 2.19.8 are vulnerable to heap buffer overflow when the JSON generator is provided with an oversized streamed object. When streaming to an IO JSON.dump(obj, io) and JSON::State#generate(obj, io) can write past the internal JSON generator buffer when a streamed object contains an\nattacker-controlled string near 16 KB. Exploitation would result in a reliable process crash/denial of service. This issue has been fixed in version 2.19.9.","state":"PUBLISHED","assigner":"GitHub_M","published_at":"2026-06-30 23:17:28","updated_at":"2026-07-02 17:54:15"},"problem_types":["CWE-122","CWE-131","CWE-787","CWE-122 CWE-122: Heap-based Buffer Overflow","CWE-131 CWE-131: Incorrect Calculation of Buffer Size","CWE-787 CWE-787: Out-of-bounds Write"],"metrics":[{"version":"3.1","source":"security-advisories@github.com","type":"Secondary","score":"3.7","severity":"LOW","vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L","data":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L","baseScore":3.7,"baseSeverity":"LOW","attackVector":"NETWORK","attackComplexity":"HIGH","privilegesRequired":"NONE","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"NONE","integrityImpact":"NONE","availabilityImpact":"LOW"}},{"version":"3.1","source":"CNA","type":"DECLARED","score":"3.7","severity":"LOW","vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L","data":{"attackComplexity":"HIGH","attackVector":"NETWORK","availabilityImpact":"LOW","baseScore":3.7,"baseSeverity":"LOW","confidentialityImpact":"NONE","integrityImpact":"NONE","privilegesRequired":"NONE","scope":"UNCHANGED","userInteraction":"NONE","vectorString":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L","version":"3.1"}}],"references":[{"url":"https://github.com/ruby/json/releases/tag/v2.19.9","name":"https://github.com/ruby/json/releases/tag/v2.19.9","refsource":"security-advisories@github.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://github.com/ruby/json/security/advisories/GHSA-x2f5-4prf-w687","name":"https://github.com/ruby/json/security/advisories/GHSA-x2f5-4prf-w687","refsource":"134c704f-9b21-4f2e-91b3-4a467353bcc0","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-54696","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-54696","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"ruby","product":"json","version":"affected >= 2.9.0, < 2.19.9","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":{"cve_year":"2026","cve_id":"54696","cve":"CVE-2026-54696","epss":"0.003010000","percentile":"0.218530000","score_date":"2026-07-03","updated_at":"2026-07-04 00:02:17"},"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"adp":[{"metrics":[{"other":{"content":{"id":"CVE-2026-54696","options":[{"Exploitation":"poc"},{"Automatable":"no"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","timestamp":"2026-07-01T13:20:35.390078Z","version":"2.0.3"},"type":"ssvc"}}],"providerMetadata":{"dateUpdated":"2026-07-01T13:20:56.931Z","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","shortName":"CISA-ADP"},"references":[{"tags":["exploit"],"url":"https://github.com/ruby/json/security/advisories/GHSA-x2f5-4prf-w687"}],"title":"CISA ADP Vulnrichment"}],"cna":{"affected":[{"product":"json","vendor":"ruby","versions":[{"status":"affected","version":">= 2.9.0, < 2.19.9"}]}],"descriptions":[{"lang":"en","value":"Ruby JSON is a JSON implementation for Ruby. Versions 2.9.0 through 2.19.8 are vulnerable to heap buffer overflow when the JSON generator is provided with an oversized streamed object. When streaming to an IO JSON.dump(obj, io) and JSON::State#generate(obj, io) can write past the internal JSON generator buffer when a streamed object contains an\nattacker-controlled string near 16 KB. Exploitation would result in a reliable process crash/denial of service. This issue has been fixed in version 2.19.9."}],"metrics":[{"cvssV3_1":{"attackComplexity":"HIGH","attackVector":"NETWORK","availabilityImpact":"LOW","baseScore":3.7,"baseSeverity":"LOW","confidentialityImpact":"NONE","integrityImpact":"NONE","privilegesRequired":"NONE","scope":"UNCHANGED","userInteraction":"NONE","vectorString":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L","version":"3.1"}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-122","description":"CWE-122: Heap-based Buffer Overflow","lang":"en","type":"CWE"}]},{"descriptions":[{"cweId":"CWE-131","description":"CWE-131: Incorrect Calculation of Buffer Size","lang":"en","type":"CWE"}]},{"descriptions":[{"cweId":"CWE-787","description":"CWE-787: Out-of-bounds Write","lang":"en","type":"CWE"}]}],"providerMetadata":{"dateUpdated":"2026-06-30T22:05:48.347Z","orgId":"a0819718-46f1-4df5-94e2-005712e83aaa","shortName":"GitHub_M"},"references":[{"name":"https://github.com/ruby/json/security/advisories/GHSA-x2f5-4prf-w687","tags":["x_refsource_CONFIRM"],"url":"https://github.com/ruby/json/security/advisories/GHSA-x2f5-4prf-w687"},{"name":"https://github.com/ruby/json/releases/tag/v2.19.9","tags":["x_refsource_MISC"],"url":"https://github.com/ruby/json/releases/tag/v2.19.9"}],"source":{"advisory":"GHSA-x2f5-4prf-w687","discovery":"UNKNOWN"},"title":"Ruby JSON: JSON generator heap buffer overflow when streaming to an IO"}},"cveMetadata":{"assignerOrgId":"a0819718-46f1-4df5-94e2-005712e83aaa","assignerShortName":"GitHub_M","cveId":"CVE-2026-54696","datePublished":"2026-06-30T22:05:48.347Z","dateReserved":"2026-06-15T22:58:06.562Z","dateUpdated":"2026-07-01T13:20:56.931Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-06-30 23:17:28","lastModifiedDate":"2026-07-02 17:54:15","problem_types":["CWE-122","CWE-131","CWE-787","CWE-122 CWE-122: Heap-based Buffer Overflow","CWE-131 CWE-131: Incorrect Calculation of Buffer Size","CWE-787 CWE-787: Out-of-bounds Write"],"metrics":{"cvssMetricV31":[{"source":"security-advisories@github.com","type":"Secondary","cvssData":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L","baseScore":3.7,"baseSeverity":"LOW","attackVector":"NETWORK","attackComplexity":"HIGH","privilegesRequired":"NONE","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"NONE","integrityImpact":"NONE","availabilityImpact":"LOW"},"exploitabilityScore":2.2,"impactScore":1.4}],"ssvcV203":[{"source":"134c704f-9b21-4f2e-91b3-4a467353bcc0","ssvcData":{"timestamp":"2026-07-01T13:20:35.390078Z","id":"CVE-2026-54696","options":[{"exploitation":"poc"},{"automatable":"no"},{"technicalImpact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}]},"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"54696","Ordinal":"1","Title":"Ruby JSON: JSON generator heap buffer overflow when streaming to","CVE":"CVE-2026-54696","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"54696","Ordinal":"1","NoteData":"Ruby JSON is a JSON implementation for Ruby. Versions 2.9.0 through 2.19.8 are vulnerable to heap buffer overflow when the JSON generator is provided with an oversized streamed object. When streaming to an IO JSON.dump(obj, io) and JSON::State#generate(obj, io) can write past the internal JSON generator buffer when a streamed object contains an\nattacker-controlled string near 16 KB. Exploitation would result in a reliable process crash/denial of service. This issue has been fixed in version 2.19.9.","Type":"Description","Title":"Ruby JSON: JSON generator heap buffer overflow when streaming to"}]}}}