Skip to content
This repository has been archived by the owner on Jan 13, 2025. It is now read-only.

Pull in hardened BPF virtual machine #9931

Merged
merged 4 commits into from
May 8, 2020
Merged

Conversation

jackcmay
Copy link
Contributor

@jackcmay jackcmay commented May 8, 2020

Problem

The BPF ELF loader and virtual machine rely on a package that may panic if invalid ELFs are presented. The virtual machine also contains operations that may panic or misbehave.

Summary of Changes

  • Switch dependencies over to the Goblin ELF crate which is more robust and has been fuzzed
  • Tighten up the virtual machine to perform safe operations and exit gracefully
  • Performed long term fuzzing at multiple layers to confirm the hardening

Fixes #1913
Fixes #9829

@mvines mvines added the v1.1 label May 8, 2020
@codecov
Copy link

codecov bot commented May 8, 2020

Codecov Report

Merging #9931 into master will decrease coverage by 0.0%.
The diff coverage is 30.3%.

@@           Coverage Diff            @@
##           master   #9931     +/-   ##
========================================
- Coverage    80.4%   80.3%   -0.1%     
========================================
  Files         283     283             
  Lines       65868   65926     +58     
========================================
- Hits        52995   52994      -1     
- Misses      12873   12932     +59     

@jackcmay jackcmay merged commit 84885d7 into solana-labs:master May 8, 2020
@jackcmay jackcmay deleted the bump-bpf branch May 8, 2020 19:37
mergify bot pushed a commit that referenced this pull request May 8, 2020
(cherry picked from commit 84885d7)

# Conflicts:
#	Cargo.lock
#	programs/bpf/Cargo.lock
#	programs/bpf/Cargo.toml
#	programs/bpf_loader/Cargo.toml
#	programs/bpf_loader/src/lib.rs
jackcmay added a commit to jackcmay/solana that referenced this pull request May 8, 2020
jackcmay added a commit that referenced this pull request May 8, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

BPFLoader slice index panic Harden BPF loader
2 participants