mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-28 11:18:45 +07:00
f1f7714ea5
Commit7bd509e311
("bpf: add prog_digest and expose it via fdinfo/netlink") was recently discussed, partially due to admittedly suboptimal name of "prog_digest" in combination with sha1 hash usage, thus inevitably and rightfully concerns about its security in terms of collision resistance were raised with regards to use-cases. The intended use cases are for debugging resp. introspection only for providing a stable "tag" over the instruction sequence that both kernel and user space can calculate independently. It's not usable at all for making a security relevant decision. So collisions where two different instruction sequences generate the same tag can happen, but ideally at a rather low rate. The "tag" will be dumped in hex and is short enough to introspect in tracepoints or kallsyms output along with other data such as stack trace, etc. Thus, this patch performs a rename into prog_tag and truncates the tag to a short output (64 bits) to make it obvious it's not collision-free. Should in future a hash or facility be needed with a security relevant focus, then we can think about requirements, constraints, etc that would fit to that situation. For now, rework the exposed parts for the current use cases as long as nothing has been released yet. Tested on x86_64 and s390x. Fixes:7bd509e311
("bpf: add prog_digest and expose it via fdinfo/netlink") Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Acked-by: Alexei Starovoitov <ast@kernel.org> Cc: Andy Lutomirski <luto@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
36 lines
707 B
C
36 lines
707 B
C
/*
|
|
* Copyright (c) 2015 Jiri Pirko <jiri@resnulli.us>
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
*/
|
|
|
|
#ifndef __LINUX_TC_BPF_H
|
|
#define __LINUX_TC_BPF_H
|
|
|
|
#include <linux/pkt_cls.h>
|
|
|
|
#define TCA_ACT_BPF 13
|
|
|
|
struct tc_act_bpf {
|
|
tc_gen;
|
|
};
|
|
|
|
enum {
|
|
TCA_ACT_BPF_UNSPEC,
|
|
TCA_ACT_BPF_TM,
|
|
TCA_ACT_BPF_PARMS,
|
|
TCA_ACT_BPF_OPS_LEN,
|
|
TCA_ACT_BPF_OPS,
|
|
TCA_ACT_BPF_FD,
|
|
TCA_ACT_BPF_NAME,
|
|
TCA_ACT_BPF_PAD,
|
|
TCA_ACT_BPF_TAG,
|
|
__TCA_ACT_BPF_MAX,
|
|
};
|
|
#define TCA_ACT_BPF_MAX (__TCA_ACT_BPF_MAX - 1)
|
|
|
|
#endif
|