- Reported
-
- Issued
-
- Package
-
solana_rbpf
(crates.io)
- Type
-
INFO
Unsound
- Categories
-
- Keywords
-
#soundness
#pointer-arithmetic
#out-of-bounds
- References
-
- Patched
-
no patched versions
- Unaffected
-
- Affected Functions
- Version
solana_rbpf::vm::EbpfVm::invoke_function
-
Description
Affected versions of solana_rbpf expose the safe method
EbpfVm::invoke_function. This method computes an obfuscated VM pointer by
casting self to *mut u64 and applying a randomized offset derived from
get_runtime_environment_key().
The resulting pointer arithmetic is performed with ptr::offset, which
requires the computed pointer to remain within the same allocation. In practice,
the randomized offset can move the pointer far outside the allocation
containing the EbpfVm, causing undefined behavior before the supplied builtin
function is invoked.
Unmaintained
The upstream solana_rbpf repository is archived, and no patched version of
this crate is currently available.
Users should migrate to the maintained solana-sbpf
crate. The issue has been fixed there in
anza-xyz/sbpf#151.
Advisory available under CC0-1.0
license.