rustsec-2026-0234
Vulnerability from osv_rustsec
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"
}
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.