{"schemaVersion":3,"id":"CVE-2026-71847","aliases":["UBUNTU-CVE-2026-71847","DEBIAN-CVE-2026-71847","CGA-5934-788f-cr4q","CGA-6frg-79hw-j43g","CGA-7r8q-hh6x-w8h4","CGA-9cfg-5xx3-3wj6","CGA-fv27-whww-xrqq","CGA-gw6x-m88c-jhwj","CGA-p74v-5xqm-gwmq","CGA-pg56-58h3-rx8m","CGA-q2w4-qg3j-rcg8","CGA-294w-rvhj-v8xf","CGA-5722-v55j-jfmg","CGA-6g87-w3vw-pj25","CGA-8m2w-p9xj-cfrv","CGA-957f-2jgg-v2xf","CGA-cfg3-299q-325h","CGA-ch3w-8pxq-pgw3","CGA-gf8v-mv2x-9rx8","CGA-jcwh-j7vm-xjwj","CGA-jf5p-24wc-f797","CGA-p5c2-39jm-6c8f","GHSA-9hj4-r449-hfvc","CGA-r257-85fc-4p2c"],"status":"published","duplicateOf":null,"title":null,"description":"Ruby JSON is a JSON implementation for Ruby. From 2.20.0 until 2.21.2, Ruby's JSON native C extension clears the consumed JSON::ResumableParser input buffer but leaves state.start, state.cursor, and state.end pointing into released storage. When partial_value reconstructs an incomplete object containing duplicate keys, the duplicate-key warning path calls cursor_position, which dereferences those stale pointers. This results in a heap-use-after-free and can terminate the Ruby process. An attacker who can supply JSON stream data to an application using JSON::ResumableParser may cause process termination when the application calls partial_value on incomplete attacker-controlled input containing duplicate object keys. This issue has been fixed in version 2.21.2.","dates":{"published":"2026-08-07T18:31:28.507Z","modified":"2026-08-07T21:02:06.463Z","reserved":null,"kevAdded":[],"kevDue":[]},"cvss":{"headline":{"score":8.7,"severity":"high","version":"4.0","versionLabel":"v4.0","source":"CVE.org","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N","computed":false,"selection":"backend-summary"},"metrics":[{"version":"4.0","versionLabel":"v4.0","source":"CVE.org","score":8.7,"severity":"high","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N","exploitability":null,"impact":null,"computed":false},{"version":"4.0","versionLabel":"v4.0","source":"OSV · Ubuntu","score":8.7,"severity":"high","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N","exploitability":null,"impact":null,"computed":true},{"version":"4.0","versionLabel":"v4.0","source":"OSV · Debian","score":8.7,"severity":"high","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","exploitability":null,"impact":null,"computed":true},{"version":"4.0","versionLabel":"v4.0","source":"OSV · Wolfi","score":8.7,"severity":"high","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N","exploitability":null,"impact":null,"computed":true},{"version":"4.0","versionLabel":"v4.0","source":"OSV · Chainguard","score":8.7,"severity":"high","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N","exploitability":null,"impact":null,"computed":true},{"version":"4.0","versionLabel":"v4.0","source":"NVD","score":8.7,"severity":"high","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","exploitability":null,"impact":null,"computed":false}]},"epss":{"probability":0.00428,"percentile":0.35718,"severity":"low","asOf":"2026-10-20T00:00:00.000Z","change":{"pp":0.04299999999999998,"baselineDate":"2026-09-20T00:00:00.000Z","baselineScore":0.00385},"history":[{"date":"2026-09-14T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-09-15T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-09-16T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-09-17T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-09-18T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-09-19T00:00:00.000Z","score":0.00385,"percentile":null},{"date":"2026-09-20T00:00:00.000Z","score":0.00385,"percentile":null},{"date":"2026-09-21T00:00:00.000Z","score":0.00385,"percentile":null},{"date":"2026-09-22T00:00:00.000Z","score":0.00385,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.00385,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.00428,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.00428,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.00428,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.00428,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.00428,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.00428,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.00428,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.00428,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.00428,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.00428,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.00428,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.00428,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.00428,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.00428,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.00428,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.00428,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.00428,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.00428,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.00428,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.00428,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00428,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00428,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00428,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00428,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00428,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.00428,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.00428,"percentile":0.35718}],"last30":[{"date":"2026-09-20T00:00:00.000Z","score":0.00385,"percentile":null},{"date":"2026-09-21T00:00:00.000Z","score":0.00385,"percentile":null},{"date":"2026-09-22T00:00:00.000Z","score":0.00385,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.00385,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.00428,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.00428,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.00428,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.00428,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.00428,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.00428,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.00428,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.00428,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.00428,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.00428,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.00428,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.00428,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.00428,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.00428,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.00428,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.00428,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.00428,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.00428,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.00428,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.00428,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00428,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00428,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00428,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00428,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00428,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.00428,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.00428,"percentile":0.35718}]},"kev":{"state":"not-listed","entries":[],"listedCount":0,"totalCatalogs":3,"catalogs":[{"source":"cisa","label":"CISA","listed":false,"entry":null},{"source":"enisa","label":"ENISA","listed":false,"entry":null},{"source":"circl","label":"CIRCL","listed":false,"entry":null}]},"ransomware":{"state":"none-recorded","sources":[]},"exploits":[],"exploitCount":0,"weaknesses":[{"id":"CWE-416","name":"Use After Free","description":"The product reuses or references memory after it has been freed. At some point afterward, the memory may be allocated again and saved in another pointer, while the original pointer references a location somewhere within the new allocation. Any operations using the original pointer are no longer valid because the memory \"belongs\" to the code that operates on the new pointer.","type":"weakness","status":"Stable","abstraction":"Variant","likelihoodOfExploit":"High","url":"https://cwe.mitre.org/data/definitions/416.html"}],"affected":[{"vendor":"chainguard","product":"cinc-auditor","name":"cinc-auditor","label":"cinc-auditor","ecosystem":"Chainguard","cpePart":null,"purl":"pkg:apk/chainguard/cinc-auditor","purlType":"apk","versions":[{"text":"< 7.1.7-r7","noFixRecorded":false,"fixedIn":null},{"text":"< 7.1.7-r6","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 7.1.7-r7 | < 7.1.7-r6","eol":null,"hubHref":null},{"vendor":"chainguard","product":"logstash-9.5","name":"logstash-9.5","label":"logstash-9.5","ecosystem":"Chainguard","cpePart":null,"purl":"pkg:apk/chainguard/logstash-9.5","purlType":"apk","versions":[{"text":"< 9.5.1-r3","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 9.5.1-r3","eol":null,"hubHref":null},{"vendor":"chainguard","product":"logstash-9.5-iamguarded-compat","name":"logstash-9.5-iamguarded-compat","label":"logstash-9.5-iamguarded-compat","ecosystem":"Chainguard","cpePart":null,"purl":"pkg:apk/chainguard/logstash-9.5-iamguarded-compat","purlType":"apk","versions":[{"text":"< 9.5.1-r3","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 9.5.1-r3","eol":null,"hubHref":null},{"vendor":"chainguard","product":"logstash-fips-9.5","name":"logstash-fips-9.5","label":"logstash-fips-9.5","ecosystem":"Chainguard","cpePart":null,"purl":"pkg:apk/chainguard/logstash-fips-9.5","purlType":"apk","versions":[{"text":"< 9.5.0-r2","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 9.5.0-r2","eol":null,"hubHref":null},{"vendor":"chainguard","product":"logstash-fips-9.5-iamguarded-compat","name":"logstash-fips-9.5-iamguarded-compat","label":"logstash-fips-9.5-iamguarded-compat","ecosystem":"Chainguard","cpePart":null,"purl":"pkg:apk/chainguard/logstash-fips-9.5-iamguarded-compat","purlType":"apk","versions":[{"text":"< 9.5.0-r2","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 9.5.0-r2","eol":null,"hubHref":null},{"vendor":"chainguard","product":"pact-broker-docker","name":"pact-broker-docker","label":"pact-broker-docker","ecosystem":"Chainguard","cpePart":null,"purl":"pkg:apk/chainguard/pact-broker-docker","purlType":"apk","versions":[{"text":"< 2.142.0.2.120.0-r1","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 2.142.0.2.120.0-r1","eol":null,"hubHref":null},{"vendor":"chainguard","product":"pact-broker-docker-fips","name":"pact-broker-docker-fips","label":"pact-broker-docker-fips","ecosystem":"Chainguard","cpePart":null,"purl":"pkg:apk/chainguard/pact-broker-docker-fips","purlType":"apk","versions":[{"text":"< 2.142.0.2.120.0-r1","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 2.142.0.2.120.0-r1","eol":null,"hubHref":null},{"vendor":"chainguard","product":"ruby3.2-rails-8.1","name":"ruby3.2-rails-8.1","label":"ruby3.2-rails-8.1","ecosystem":"Chainguard","cpePart":null,"purl":"pkg:apk/chainguard/ruby3.2-rails-8.1","purlType":"apk","versions":[{"text":"< 8.1.3.1-r1","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 8.1.3.1-r1","eol":null,"hubHref":null},{"vendor":"chainguard","product":"ruby3.3-rails-8.1","name":"ruby3.3-rails-8.1","label":"ruby3.3-rails-8.1","ecosystem":"Chainguard","cpePart":null,"purl":"pkg:apk/chainguard/ruby3.3-rails-8.1","purlType":"apk","versions":[{"text":"< 8.1.3.1-r1","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 8.1.3.1-r1","eol":null,"hubHref":null},{"vendor":"chainguard","product":"ruby3.4-rails-8.1","name":"ruby3.4-rails-8.1","label":"ruby3.4-rails-8.1","ecosystem":"Chainguard","cpePart":null,"purl":"pkg:apk/chainguard/ruby3.4-rails-8.1","purlType":"apk","versions":[{"text":"< 8.1.3.1-r1","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 8.1.3.1-r1","eol":null,"hubHref":null},{"vendor":"wolfi","product":"cinc-auditor","name":"cinc-auditor","label":"cinc-auditor","ecosystem":"Wolfi","cpePart":null,"purl":"pkg:apk/wolfi/cinc-auditor","purlType":"apk","versions":[{"text":"< 7.1.7-r7","noFixRecorded":false,"fixedIn":null},{"text":"< 7.1.7-r6","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 7.1.7-r7 | < 7.1.7-r6","eol":null,"hubHref":null},{"vendor":"wolfi","product":"ruby3.2-rails-8.1","name":"ruby3.2-rails-8.1","label":"ruby3.2-rails-8.1","ecosystem":"Wolfi","cpePart":null,"purl":"pkg:apk/wolfi/ruby3.2-rails-8.1","purlType":"apk","versions":[{"text":"< 8.1.3.1-r1","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 8.1.3.1-r1","eol":null,"hubHref":null},{"vendor":"wolfi","product":"ruby3.3-rails-8.1","name":"ruby3.3-rails-8.1","label":"ruby3.3-rails-8.1","ecosystem":"Wolfi","cpePart":null,"purl":"pkg:apk/wolfi/ruby3.3-rails-8.1","purlType":"apk","versions":[{"text":"< 8.1.3.1-r1","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 8.1.3.1-r1","eol":null,"hubHref":null},{"vendor":"wolfi","product":"ruby3.4-rails-8.1","name":"ruby3.4-rails-8.1","label":"ruby3.4-rails-8.1","ecosystem":"Wolfi","cpePart":null,"purl":"pkg:apk/wolfi/ruby3.4-rails-8.1","purlType":"apk","versions":[{"text":"< 8.1.3.1-r1","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 8.1.3.1-r1","eol":null,"hubHref":null},{"vendor":"debian","product":"ruby-json","name":"ruby-json","label":"ruby-json","ecosystem":"Debian","cpePart":null,"purl":"pkg:deb/debian/ruby-json","purlType":"deb","versions":[{"text":"All versions","noFixRecorded":true,"fixedIn":null},{"text":"< 2.21.2+dfsg-1","noFixRecorded":false,"fixedIn":null}],"versionsText":"All versions (No fix recorded) | < 2.21.2+dfsg-1","eol":null,"hubHref":null},{"vendor":"ubuntu","product":"ruby-json","name":"ruby-json","label":"ruby-json","ecosystem":"Ubuntu","cpePart":null,"purl":"pkg:deb/ubuntu/ruby-json","purlType":"deb","versions":[{"text":"All versions","noFixRecorded":true,"fixedIn":null}],"versionsText":"All versions (No fix recorded)","eol":null,"hubHref":null},{"vendor":"RubyGems","product":"json","name":"json","label":"json","ecosystem":"RubyGems","cpePart":null,"purl":"pkg:gem/json","purlType":"gem","versions":[{"text":"≥ 2.20.0, < 2.21.2","noFixRecorded":false,"fixedIn":null}],"versionsText":"≥ 2.20.0, < 2.21.2","eol":null,"hubHref":null},{"vendor":"ruby","product":"json","name":"json","label":"json","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"≥ 2.20.0, < 2.21.2","noFixRecorded":false,"fixedIn":null}],"versionsText":"≥ 2.20.0, < 2.21.2","eol":null,"hubHref":"/vendor/ruby/json"}],"affectedCount":18,"eol":{"hasEol":false,"count":0},"references":[{"url":"https://github.com/ruby/json/security/advisories/GHSA-9hj4-r449-hfvc","label":"github.com/ruby/json/security/advisories/GHSA-9hj4-r449-hfvc","hostname":"github.com","tags":["X Refsource CONFIRM","REPORT","Advisory","WEB"]},{"url":"https://ubuntu.com/security/CVE-2026-71847","label":"ubuntu.com/security/CVE-2026-71847","hostname":"ubuntu.com","tags":["REPORT"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-71847","label":"www.cve.org/CVERecord?id=CVE-2026-71847","hostname":"www.cve.org","tags":["REPORT"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2026-71847","label":"security-tracker.debian.org/tracker/CVE-2026-71847","hostname":"security-tracker.debian.org","tags":["Advisory"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/71xxx/CVE-2026-71847.json","label":"github.com/CVEProject/cvelistV5/tree/main/cves/2026/71xxx/CVE-2026-71847.json","hostname":"github.com","tags":["Advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-71847","label":"nvd.nist.gov/vuln/detail/CVE-2026-71847","hostname":"nvd.nist.gov","tags":["Advisory"]},{"url":"https://github.com/ruby/json","label":"github.com/ruby/json","hostname":"github.com","tags":["PACKAGE"]}],"lineage":{"upstream":[],"downstream":["OPENSUSE-SU-2026:12153-1","OPENSUSE-SU-2026:22068-1"],"duplicates":[],"related":["CGA-8H37-7MM8-C7Q6","OPENSUSE-SU-2026:12153-1","OPENSUSE-SU-2026:22068-1"]},"timeline":[{"kind":"published","date":"2026-08-07T18:31:28.507Z","label":"Published","detail":"Vulnerability first disclosed.","source":null},{"kind":"modified","date":"2026-08-07T21:02:06.463Z","label":"Last modified","detail":"Vulnerability information updated.","source":null}],"risk":{"score":35,"level":"medium","profile":"Default","thresholds":{"critical":75,"high":50,"medium":25,"low":10}},"meta":{"dataAsOf":"2026-10-20T16:58:01.453Z","stale":false,"partial":false}}