Skip to content
OpenAdvisories
Unscored RUSTSEC-2026-0191

`EbpfVm::invoke_function` performs out-of-bounds pointer arithmetic

Published May 28, 2026 · Updated Jun 29, 2026 · Assigned by RUSTSEC

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`](https://crates.io/crates/solana-sbpf)
crate. The issue has been fixed there in
[`anza-xyz/sbpf#151`](https://github.com/anza-xyz/sbpf/pull/151).

Affected packages

EcosystemPackageAffectedFixedRecord
crates.io solana_rbpf >= 0.8.0 — RUSTSEC-2026-0191

References