RUSTSEC-2026-0234
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.
Are you affected?
Enter the version of the package you're using.
Affected packages
0.8.0-rc.1 Fixed in: 0.8.17 Upgrade rkyv to 0.8.17 or newer (ecosystem crates.io).
References
- https://crates.io/crates/rkyv [PACKAGE]
- https://rustsec.org/advisories/RUSTSEC-2026-0234.html [ADVISORY]
- https://github.com/rkyv/rkyv/issues/663 [REPORT]
- https://github.com/rkyv/rkyv/issues/664 [REPORT]
- https://github.com/rkyv/rkyv/issues/665 [REPORT]
- https://github.com/rkyv/rkyv/issues/669 [REPORT]
- https://github.com/rkyv/rkyv/commit/3c9d07fbff5949261bef38d00ab160b129bd9d3a [WEB]
- https://github.com/rkyv/rkyv/commit/57086e1c7f417d0360c7045905db3b3d8e30f866 [WEB]