OrangePi_CM5/tools/testing/selftests/bpf/verifier
Daniel Borkmann 0612679e48 bpf, selftests: Add test case trying to taint map value pointer
commit b1a7288dedc6caf9023f2676b4f5ed34cf0d4029 upstream.

Add a test case which tries to taint map value pointer arithmetic into a
unknown scalar with subsequent export through the map.

Before fix:

  # ./test_verifier 1186
  #1186/u map access: trying to leak tained dst reg FAIL
  Unexpected success to load!
  verification time 24 usec
  stack depth 8
  processed 15 insns (limit 1000000) max_states_per_insn 0 total_states 1 peak_states 1 mark_read 1
  #1186/p map access: trying to leak tained dst reg FAIL
  Unexpected success to load!
  verification time 8 usec
  stack depth 8
  processed 15 insns (limit 1000000) max_states_per_insn 0 total_states 1 peak_states 1 mark_read 1
  Summary: 0 PASSED, 0 SKIPPED, 2 FAILED

After fix:

  # ./test_verifier 1186
  #1186/u map access: trying to leak tained dst reg OK
  #1186/p map access: trying to leak tained dst reg OK
  Summary: 2 PASSED, 0 SKIPPED, 0 FAILED

Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Reviewed-by: John Fastabend <john.fastabend@gmail.com>
Acked-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-12-22 09:30:51 +01:00
..
.gitignore
…
and.c bpf, selftests: Adjust few selftest outcomes wrt unreachable code 2021-08-08 09:05:24 +02:00
array_access.c bpf: Fix propagation of bounds from 64-bit min/max into 32-bit and var_off. 2021-11-18 14:04:13 +01:00
basic.c selftests/bpf: Fix test_verifier after introducing resolve_pseudo_ldimm64 2020-10-06 20:16:57 -07:00
basic_call.c
…
basic_instr.c
…
basic_stack.c selftest/bpf: Adjust expected verifier errors 2021-08-08 09:05:24 +02:00
basic_stx_ldx.c
…
bounds.c bpf, selftests: Adjust few selftest outcomes wrt unreachable code 2021-08-08 09:05:24 +02:00
bounds_deduction.c bpf: Update selftests to reflect new error states 2021-08-08 09:05:24 +02:00
bounds_mix_sign_unsign.c bpf: Update selftests to reflect new error states 2021-08-08 09:05:24 +02:00
bpf_get_stack.c
…
calls.c selftest/bpf: Adjust expected verifier errors 2021-08-08 09:05:24 +02:00
cfg.c
…
cgroup_inv_retcode.c
…
cgroup_skb.c
…
cgroup_storage.c
…
const_or.c selftest/bpf: Adjust expected verifier errors 2021-08-08 09:05:24 +02:00
ctx.c
…
ctx_sk_lookup.c selftests/bpf: Add verifier tests for bpf_sk_lookup context access 2020-07-17 20:18:17 -07:00
ctx_sk_msg.c
…
ctx_skb.c
…
d_path.c selftests/bpf: Add verifier test for d_path helper 2020-08-25 15:41:15 -07:00
dead_code.c bpf, selftests: Adjust few selftest outcomes wrt unreachable code 2021-08-08 09:05:24 +02:00
direct_packet_access.c bpf: Propagate scalar ranges through register assignments. 2020-10-09 22:03:06 +02:00
direct_stack_access_wraparound.c
…
direct_value_access.c bpf: Implement BPF ring buffer and verifier support for it 2020-06-01 14:38:22 -07:00
div0.c
…
div_overflow.c
…
event_output.c selftests/bpf: Fix cgroup sockopt verifier test 2020-07-11 01:32:15 +02:00
helper_access_var_len.c selftest/bpf: Adjust expected verifier errors 2021-08-08 09:05:24 +02:00
helper_packet_access.c
…
helper_value_access.c bpf, selftests: Use bpf_probe_read_kernel 2020-06-02 21:04:04 +02:00
int_ptr.c selftest/bpf: Adjust expected verifier errors 2021-08-08 09:05:24 +02:00
jit.c
…
jmp32.c bpf, selftests: Adjust few selftest outcomes wrt unreachable code 2021-08-08 09:05:24 +02:00
jset.c bpf, selftests: Adjust few selftest outcomes wrt unreachable code 2021-08-08 09:05:24 +02:00
jump.c
…
junk_insn.c
…
ld_abs.c
…
ld_dw.c
…
ld_imm64.c selftests/bpf: Fix test_verifier after introducing resolve_pseudo_ldimm64 2020-10-06 20:16:57 -07:00
ld_ind.c
…
leak_ptr.c
…
loops1.c
…
lwt.c
…
map_in_map.c
…
map_ptr.c bpf: Update selftests to reflect new error states 2021-08-08 09:05:24 +02:00
map_ptr_mixing.c bpf: Support access to bpf map fields 2020-06-22 22:22:58 +02:00
map_ret_val.c
…
masking.c
…
meta_access.c
…
perf_event_sample_period.c
…
precise.c bpf, selftests: Use bpf_probe_read_kernel 2020-06-02 21:04:04 +02:00
prevent_map_lookup.c selftests/bpf: Test that lookup on SOCKMAP/SOCKHASH is allowed 2020-04-29 23:30:59 +02:00
raw_stack.c selftest/bpf: Adjust expected verifier errors 2021-08-08 09:05:24 +02:00
raw_tp_writable.c
…
ref_tracking.c bpf: selftest: Add ref_tracking verifier test for bpf_skc casting 2020-09-25 13:58:02 -07:00
regalloc.c bpf: Fix register equivalence tracking. 2020-10-15 16:05:31 +02:00
runtime_jit.c
…
scale.c
…
search_pruning.c
…
sock.c bpf: selftest: Ensure the return value of bpf_skc_to helpers must be checked 2020-10-19 15:57:42 -07:00
spill_fill.c
…
spin_lock.c
…
stack_ptr.c bpf, selftests: Adjust few selftest result_unpriv outcomes 2021-08-08 09:05:24 +02:00
subreg.c
…
uninit.c
…
unpriv.c bpf, selftests: Adjust few selftest outcomes wrt unreachable code 2021-08-08 09:05:24 +02:00
value.c
…
value_adj_spill.c
…
value_illegal_alu.c
…
value_or_null.c bpf: Selftests, verifier case for non null pointer map value branch 2020-05-21 17:44:25 -07:00
value_ptr_arith.c bpf, selftests: Add test case trying to taint map value pointer 2021-12-22 09:30:51 +01:00
var_off.c selftest/bpf: Verifier tests for var-off access 2021-08-08 09:05:24 +02:00
wide_access.c
…
xadd.c
…
xdp.c
…
xdp_direct_packet_access.c bpf: Add selftests to cover packet access corner cases 2021-12-14 11:32:46 +01:00