ubpf
ubpf copied to clipboard
Userspace eBPF VM
This pull request introduces fuzzing capabilities to the project, including a new GitHub Actions workflow, and modifies the project's build system to support fuzzing. The most significant changes include the...
Bumps [external/bpf_conformance](https://github.com/Alan-Jowett/bpf_conformance) from `1bc5d19` to `0eed408`. Commits 0eed408 Bump actions/upload-artifact from 4.3.1 to 4.3.3 (#235) c728ace Bump actions/checkout from 4.1.3 to 4.1.4 (#237) See full diff in compare view Dependabot...
Bumps [step-security/harden-runner](https://github.com/step-security/harden-runner) from 2.7.0 to 2.7.1. Release notes Sourced from step-security/harden-runner's releases. v2.7.1 What's Changed Release v2.7.1 by @varunsh-coder, @h0x0er, @ashishkurmi in step-security/harden-runner#397 This release: Improves the capability to inspect...
uBPF has options for loading either raw byte code or an ELF file. The bpf_conformance suite also supports emitting test collateral as either ELF or raw byte code. This change...
The JIT compiler does not emit check instructions for the target PC during code generation. Hence, any invalid jump target can be triggered without validation: https://github.com/iovisor/ubpf/blob/7d6da196ae98caf26fb953a0d709e8289dffd035/vm/ubpf_jit_x86_64.c#L102-L118 Execute the following PoC...
When we run PoC program in the JIT compiler, we get the return value as `224` after execution. While the correct return value should be `0`. The code generation implementation...
The current JIT compiler does not emit boundary checks for the load/store memory opcode. Hence, any program can perform an invalid memory operation. e.g., the following PoC program can trigger...
## Details The `bounds_check` function does not check whether the `address + size` overflows. When `address` is large enough, the result of `(char*)addr + size` would overflow and bypass the...
The current implementation of the interpreter does not check the termination of the eBPF program. While executing an unterminated eBPF program, the interpreter would make an invalid `pc` that exceeds...
There are atomic instructions in eBPF standard, but they seemed to be missing from ubpf https://docs.kernel.org/bpf/standardization/instruction-set.html#id22