Skip to content
Heist/ feed
Back to feed
MediumFix available

ruby-oj — security advisory

Type: advisorySources: OSVAdvisory ID: DEBIAN-CVE-2026-54903

Oj (Optimized JSON) is a JSON parser and Object marshaller packaged as a Ruby gem. In versions prior to 3.17.2, Oj.load is vulnerable to heap corruption when parsing a JSON string longer than 2 GB. An integer overflow in buf_append_string (buf.h:61) converts the string length to a large negative size_t, causing memcpy to copy an astronomically large amount of data out of bounds. This crashes the process and can corrupt adjacent heap memory. The issue has been fixed in version 3.17.2.

Products
ruby-oj
Affected versions
3.14.2-1, 3.16.12-1, 3.16.15-1, 3.16.16-1, 3.16.3-1, 3.17.0-1, 3.17.1-1
Fixed versions
3.14.2-1+deb12u1, 3.16.3-1+deb13u1, 3.17.3-1
CVEs
CVE-2026-54903
Confirmed fixed CVEs
Not specified
Updated in this feed
1 Nov 2026, 12:17 UTC · Revision 2

Source evidence

DEBIAN-CVE-2026-54903

core-osv · Original source

Published 1 Jul 2026, 00:16 UTC

Oj (Optimized JSON) is a JSON parser and Object marshaller packaged as a Ruby gem. In versions prior to 3.17.2, Oj.load is vulnerable to heap corruption when parsing a JSON string longer than 2 GB. An integer overflow in buf_append_string (buf.h:61) converts the string length to a large negative size_t, causing memcpy to copy an astronomically large amount of data out of bounds. This crashes the process and can corrupt adjacent heap memory. The issue has been fixed in version 3.17.2.

osv:DEBIAN-CVE-2026-54903

ruby-oj

Fixed versions: 3.14.2-1+deb12u1

ruby-oj

Fixed versions: 3.16.3-1+deb13u1

ruby-oj

Fixed versions: 3.17.3-1

Complete source record
{
  "id": "93fe7ac6699fb050f9752af68c6df514a6b130a49c2c70887c67719117a4fd71",
  "url": "https://osv.dev/vulnerability/DEBIAN-CVE-2026-54903",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "DEBIAN-CVE-2026-54903",
    "summary": "Oj (Optimized JSON) is a JSON parser and Object marshaller packaged as a Ruby gem. In versions prior to 3.17.2, Oj.load is vulnerable to heap corruption when parsing a JSON string longer than 2 GB. An integer overflow in buf_append_string (buf.h:61) converts the string length to a large negative size_t, causing memcpy to copy an astronomically large amount of data out of bounds. This crashes the process and can corrupt adjacent heap memory. The issue has been fixed in version 3.17.2.",
    "evidence": "osv:DEBIAN-CVE-2026-54903",
    "products": [
      {
        "name": {
          "value": "ruby-oj",
          "evidence": "/affected/0/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [
          {
            "value": "3.14.2-1+deb12u1",
            "evidence": "/affected/0/ranges"
          }
        ],
        "affected_versions": [
          {
            "value": "3.14.2-1",
            "evidence": "/affected/0/versions"
          }
        ]
      },
      {
        "name": {
          "value": "ruby-oj",
          "evidence": "/affected/1/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [
          {
            "value": "3.16.3-1+deb13u1",
            "evidence": "/affected/1/ranges"
          }
        ],
        "affected_versions": [
          {
            "value": "3.16.3-1",
            "evidence": "/affected/1/versions"
          }
        ]
      },
      {
        "name": {
          "value": "ruby-oj",
          "evidence": "/affected/2/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [
          {
            "value": "3.17.3-1",
            "evidence": "/affected/2/ranges"
          }
        ],
        "affected_versions": [
          {
            "value": "3.16.12-1",
            "evidence": "/affected/2/versions"
          },
          {
            "value": "3.16.15-1",
            "evidence": "/affected/2/versions"
          },
          {
            "value": "3.16.16-1",
            "evidence": "/affected/2/versions"
          },
          {
            "value": "3.16.3-1",
            "evidence": "/affected/2/versions"
          },
          {
            "value": "3.17.0-1",
            "evidence": "/affected/2/versions"
          },
          {
            "value": "3.17.1-1",
            "evidence": "/affected/2/versions"
          }
        ]
      }
    ],
    "severity": "medium",
    "structured": {
      "id": "DEBIAN-CVE-2026-54903",
      "aliases": [
        "DEBIAN-CVE-2026-54903"
      ],
      "metrics": [
        {
          "type": "CVSS_V4",
          "score": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/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"
        }
      ],
      "affected": [
        {
          "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-54903.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-54903.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-54903.json"
          },
          "ecosystem_specific": {
            "urgency": "not yet assigned"
          }
        }
      ],
      "modified": "2026-10-26T11:47:25.363092911Z",
      "provider": "osv",
      "upstream": [
        "CVE-2026-54903"
      ],
      "references": [
        "https://security-tracker.debian.org/tracker/CVE-2026-54903"
      ]
    },
    "related_cves": [
      {
        "value": "CVE-2026-54903",
        "evidence": "/upstream"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 450791,
  "published_at": "2026-07-01T00:16:33.707+00:00"
}