DEBIAN-CVE-2026-54592
Oj (Optimized JSON) is a JSON parser and Object marshaller packaged as a Ruby gem. In versions prior to 3.17.3, Oj::Doc#each_child, when invoked recursively over a deeply nested JSON document, overflows a fixed-size stack buffer and aborts the process, leading to DoS. In a two-step chain in ext/oj/fast.c, doc_each_child increments doc->where past the where_path[MAX_STACK = 100] array with no bounds check and never restores it (the doc->where-- is missing), so calling each_child recursively from inside the yield block drives doc->where beyond the array. On the next entry the function copies the path into the 800-byte stack-local buffer save_path[MAX_STACK] using wlen = doc->where - doc->where_path, so when the previous recursive call left doc->where past where_path[100] the wlen exceeds MAX_STACK and the memcpy overflows save_path on the C stack; because the Oj::Doc parser imposes no JSON nesting-depth limit (relying on a C-stack pressure check), deeply nested attacker input reaches this path. This issue has been fixed in version 3.17.3.
DEBIAN-CVE-2026-54592
Primary source · Revision 1
Imported from structured advisory data. Source references identify upstream records or fields; verify affected versions and your deployed configuration.
Security context
Source reference: osv:DEBIAN-CVE-2026-54592
ruby-oj
Source reference: /affected/0/package/name
- Affected versions
- 3.14.2-1
Source reference:
/affected/0/versions - Fixed versions
- 3.14.2-1+deb12u1
Source reference:
/affected/0/ranges - Prerequisites
- Not stated in this record
ruby-oj
Source reference: /affected/1/package/name
- Affected versions
- 3.16.3-1
Source reference:
/affected/1/versions - Fixed versions
- 3.16.3-1+deb13u1
Source reference:
/affected/1/ranges - Prerequisites
- Not stated in this record
ruby-oj
Source reference: /affected/2/package/name
- Affected versions
- 3.16.12-1
Source reference:
/affected/2/versions3.16.15-1Source reference:
/affected/2/versions3.16.16-1Source reference:
/affected/2/versions3.16.3-1Source reference:
/affected/2/versions3.17.0-1Source reference:
/affected/2/versions3.17.1-1Source reference:
/affected/2/versions - Fixed versions
- 3.17.3-1
Source reference:
/affected/2/ranges - Prerequisites
- Not stated in this record
Structured affected-version data
Original package identities and version rules from this source.
[
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "3.14.2-1+deb12u1"
}
]
}
],
"package": {
"name": "ruby-oj",
"purl": "pkg:deb/debian/ruby-oj?arch=source&distro=bookworm",
"ecosystem": "Debian:12"
},
"versions": [
"3.14.2-1"
],
"database_specific": {
"source": "https://storage.googleapis.com/debian-osv/debian-cve-osv/DEBIAN-CVE-2026-54592.json"
},
"ecosystem_specific": {
"urgency": "not yet assigned"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "3.16.3-1+deb13u1"
}
]
}
],
"package": {
"name": "ruby-oj",
"purl": "pkg:deb/debian/ruby-oj?arch=source&distro=trixie",
"ecosystem": "Debian:13"
},
"versions": [
"3.16.3-1"
],
"database_specific": {
"source": "https://storage.googleapis.com/debian-osv/debian-cve-osv/DEBIAN-CVE-2026-54592.json"
},
"ecosystem_specific": {
"urgency": "not yet assigned"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "3.17.3-1"
}
]
}
],
"package": {
"name": "ruby-oj",
"purl": "pkg:deb/debian/ruby-oj?arch=source&distro=forky",
"ecosystem": "Debian:14"
},
"versions": [
"3.16.12-1",
"3.16.15-1",
"3.16.16-1",
"3.16.3-1",
"3.17.0-1",
"3.17.1-1"
],
"database_specific": {
"source": "https://storage.googleapis.com/debian-osv/debian-cve-osv/DEBIAN-CVE-2026-54592.json"
},
"ecosystem_specific": {
"urgency": "not yet assigned"
}
}
]Publisher severity
No explicit severity was provided.
- Event
- #57835 · Revision 1
- Added to Heist Feed
- Publisher date