RUSTSEC-2025-0170 json
`hugepage_rs::dealloc` may allow invalid memory deallocation from safe code
published last yr. modified 3mo ago
- cvss
- —
- not scored
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- —
- no score, EPSS covers CVEs only
- public exploits
- 0
- none known
Summary
`hugepage_rs::dealloc` was a publicly accessible safe function. It accepted an arbitrary raw pointer and `Layout`, then forwarded them to the hugepage allocator's `GlobalAlloc::dealloc` implementation.
`GlobalAlloc::dealloc` requires callers to ensure that the pointer denotes a block of memory currently allocated by the allocator and that the layout is the same layout used for the allocation. The safe wrapper neither verified these requirements nor marked them as unsafe preconditions for callers.
Affected versions therefore allowed safe Rust code to call `dealloc` with an invalid pointer, a pointer not allocated by the hugepage allocator, or an incorrect layout, which could cause undefined behavior.
The upstream repository fixed this in version `0.1.1` by marking `dealloc` as unsafe and documenting the caller's safety requirements.
Patch / fix
- crates.io hugepage-rs 0.1.1
- github.com/cppcoffee/hugepage-rs@2b30bdf commit
- github.com/cppcoffee/hugepage-rs#6 pull request
Is RUSTSEC-2025-0170 in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerAffected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| crates.io | hugepage-rs | >=0.0.0-0, <0.1.1 |
0.1.1 |
References
Sources
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.