Unsound MediumRUSTSEC-2023-0045 · memoffset
RUSTSEC-2023-0045: memoffset allows reading uninitialized memory
Short answermemoffset has an API that can cause undefined behaviour from safe code: memoffset allows reading uninitialized memory. Fixed in 0.6.2.
| Crate | memoffset |
|---|---|
| Type | Unsound (memory-corruption) |
| Affected versions | Before 0.6.2. |
| Fixed in | 0.6.2 |
| Severity | Medium (GitHub rating) |
| Published | 2023-06-21 |
| Last changed | 2023-11-08 |
| Also known as | GHSA-wfg4-322g-9vqv |
| Affected functions | memoffset::offset_of |
What to do
- See which version you have:
cargo tree -i memoffset(it also shows which of your dependencies pulls it in). - Update within your version requirement:
cargo update -p memoffset. If the fix is a newer major or minor than your requirement allows, raise it in Cargo.toml (for examplememoffset = "0.6.2") or update the dependency that pulls it in. - Check again with
cargo audit, or paste your Cargo.lock into our Cargo.toml checker.
Details from the advisory
memoffset allows attempt of reading data from address 0 with arbitrary type. This behavior is an undefined behavior because address 0 to std::mem::size_of<T> may not have valid bit-pattern with T. Old implementation dereferences uninitialized memory obtained from std::mem::align_of. Older implementation prior to it allows using uninitialized data obtained from std::mem::uninitialized with arbitrary type then compute offset by taking the address of field-projection. This may also result in an undefined behavior for "father" that includes (directly or transitively) type that does not allow to be uninitialized.
This flaw was corrected by using std::ptr::addr_of in <https://github.com/Gilnaa/memoffset/pull/50>.
References
- Package: crates.io/crates/memoffset
- Advisory: rustsec.org/advisories/RUSTSEC-2023-0045.html
- Report: github.com/Gilnaa/memoffset/issues/24
From the RustSec Advisory Database (CC0-1.0) via the OSV export, downloaded Oct 24, 2026. Severity score computed from the published CVSS vector.
Other advisories for memoffset
Up next
Same cratememoffset: security historyEvery advisory for this crate, and whether it is safe to use today.Read it next →Did this answer your question?