rustsec-2026-0234
Vulnerability from osv_rustsec
Published
2026-05-11 12:00
Modified
2026-08-04 09:27
Summary
Insufficient archive validation can cause out-of-bounds reads in archives containing hash tables
Details

The archive validator could accept certain malformed relative pointers and invalid ArchivedHashTable states. In particular, the hash table verifier did not ensure that the number of occupied buckets matched the table's declared length.

A crafted archive could pass the checks performed by the safe rkyv::access and rkyv::from_bytes APIs and then cause an out-of-bounds read in later validation, lookup, or deserialization. Depending on the input, this could perform scalar or SIMD reads outside the archive buffer or crash the process.

Version 0.8.17 strengthens archive range validation and rejects hash tables whose number of occupied buckets does not match their declared length. Users who process untrusted archives should upgrade to 0.8.17 or later.


{
  "affected": [
    {
      "database_specific": {
        "categories": [
          "memory-exposure",
          "denial-of-service"
        ],
        "cvss": null,
        "informational": null
      },
      "ecosystem_specific": {
        "affected_functions": null,
        "affects": {
          "arch": [],
          "functions": [],
          "os": []
        }
      },
      "package": {
        "ecosystem": "crates.io",
        "name": "rkyv",
        "purl": "pkg:cargo/rkyv"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "0.8.0-rc.1"
            },
            {
              "fixed": "0.8.17"
            }
          ],
          "type": "SEMVER"
        }
      ],
      "versions": []
    }
  ],
  "aliases": [],
  "database_specific": {
    "license": "CC0-1.0"
  },
  "details": "The archive validator could accept certain malformed relative pointers and\ninvalid `ArchivedHashTable` states. In particular, the hash table verifier did\nnot ensure that the number of occupied buckets matched the table\u0027s declared\nlength.\n\nA crafted archive could pass the checks performed by the safe `rkyv::access`\nand `rkyv::from_bytes` APIs and then cause an out-of-bounds read in later\nvalidation, lookup, or deserialization. Depending on the input, this could\nperform scalar or SIMD reads outside the archive buffer or crash the process.\n\nVersion 0.8.17 strengthens archive range validation and rejects hash tables\nwhose number of occupied buckets does not match their declared length. Users\nwho process untrusted archives should upgrade to 0.8.17 or later.",
  "id": "RUSTSEC-2026-0234",
  "modified": "2026-08-04T09:27:20Z",
  "published": "2026-05-11T12:00:00Z",
  "references": [
    {
      "type": "PACKAGE",
      "url": "https://crates.io/crates/rkyv"
    },
    {
      "type": "ADVISORY",
      "url": "https://rustsec.org/advisories/RUSTSEC-2026-0234.html"
    },
    {
      "type": "REPORT",
      "url": "https://github.com/rkyv/rkyv/issues/663"
    },
    {
      "type": "REPORT",
      "url": "https://github.com/rkyv/rkyv/issues/664"
    },
    {
      "type": "REPORT",
      "url": "https://github.com/rkyv/rkyv/issues/665"
    },
    {
      "type": "REPORT",
      "url": "https://github.com/rkyv/rkyv/issues/669"
    },
    {
      "type": "WEB",
      "url": "https://github.com/rkyv/rkyv/commit/3c9d07fbff5949261bef38d00ab160b129bd9d3a"
    },
    {
      "type": "WEB",
      "url": "https://github.com/rkyv/rkyv/commit/57086e1c7f417d0360c7045905db3b3d8e30f866"
    }
  ],
  "related": [],
  "severity": [],
  "summary": "Insufficient archive validation can cause out-of-bounds reads in archives containing hash tables"
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…