There is a buffer over-read in Ruby before 2.6.10, 2.7.x before 2.7.6, 3.x before 3.0.4, and 3.1.x before 3.1.2. It occurs in String-to-Float conversion, including Kernel#Float and String#to_f.
{
"unresolved_ranges": [
{
"source": "CPE_FIELD",
"cpe": "cpe:2.3:o:apple:macos:*:*:*:*:*:*:*:*",
"extracted_events": [
{
"introduced": "11.0"
},
{
"fixed": "11.7.1"
},
{
"introduced": "12.0"
},
{
"fixed": "12.6.1"
}
]
},
{
"source": "CPE_FIELD",
"cpe": "cpe:2.3:o:debian:debian_linux:10.0:*:*:*:*:*:*:*",
"extracted_events": [
{
"last_affected": "10.0"
}
]
},
{
"source": "CPE_FIELD",
"cpe": "cpe:2.3:o:debian:debian_linux:11.0:*:*:*:*:*:*:*",
"extracted_events": [
{
"last_affected": "11.0"
}
]
},
{
"source": "CPE_FIELD",
"cpe": "cpe:2.3:o:debian:debian_linux:9.0:*:*:*:*:*:*:*",
"extracted_events": [
{
"last_affected": "9.0"
}
]
}
]
}{
"source": "CPE_FIELD",
"cpe": "cpe:2.3:a:ruby-lang:ruby:*:*:*:*:*:*:*:*",
"extracted_events": [
{
"introduced": "0"
},
{
"fixed": "2.6.10"
},
{
"introduced": "2.7.0"
},
{
"fixed": "2.7.6"
},
{
"introduced": "3.0.0"
},
{
"fixed": "3.0.4"
},
{
"introduced": "3.1.0"
},
{
"fixed": "3.1.2"
}
]
}"2026-04-12T05:04:22Z"
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2022-28739.json"
[
{
"target": {
"function": "strtod",
"file": "missing/dtoa.c"
},
"signature_version": "v1",
"deprecated": false,
"digest": {
"length": 8488.0,
"function_hash": "328864874327574063403775378011327146659"
},
"id": "CVE-2022-28739-6a62c92b",
"source": "https://github.com/ruby/ruby/commit/3fa771ddedac25560be57f4055f1767e6c810f58",
"signature_type": "Function"
},
{
"target": {
"function": "strtod",
"file": "missing/dtoa.c"
},
"signature_version": "v1",
"deprecated": false,
"digest": {
"length": 8488.0,
"function_hash": "328864874327574063403775378011327146659"
},
"id": "CVE-2022-28739-9881b371",
"source": "https://github.com/ruby/ruby/commit/c9c2245c0a25176072e02db9254f0e0c84c805cd",
"signature_type": "Function"
},
{
"target": {
"file": "missing/dtoa.c"
},
"signature_version": "v1",
"deprecated": false,
"digest": {
"threshold": 0.9,
"line_hashes": [
"337285692131683350587106124606194849187",
"171125667734974039822063106046701353862",
"315160000533057727845661241951943922131",
"27247823211488908491542581188290566144",
"268560890618114141161195735339343855241",
"321395545576834868767584132304880323141",
"12924114540111067235220886822648996878",
"18815063887966383786580032668437598724"
]
},
"id": "CVE-2022-28739-cd9ec724",
"source": "https://github.com/ruby/ruby/commit/c9c2245c0a25176072e02db9254f0e0c84c805cd",
"signature_type": "Line"
},
{
"target": {
"file": "missing/dtoa.c"
},
"signature_version": "v1",
"deprecated": false,
"digest": {
"threshold": 0.9,
"line_hashes": [
"337285692131683350587106124606194849187",
"171125667734974039822063106046701353862",
"315160000533057727845661241951943922131",
"27247823211488908491542581188290566144",
"268560890618114141161195735339343855241",
"321395545576834868767584132304880323141",
"12924114540111067235220886822648996878",
"18815063887966383786580032668437598724"
]
},
"id": "CVE-2022-28739-d67435c3",
"source": "https://github.com/ruby/ruby/commit/3fa771ddedac25560be57f4055f1767e6c810f58",
"signature_type": "Line"
}
]