-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
bpf: Reject struct_ops registration that uses module ptr and the module btf_id is missing #4819
bpf: Reject struct_ops registration that uses module ptr and the module btf_id is missing #4819
Conversation
Upstream branch: c5d2bac |
a16555e
to
5b81b0c
Compare
Upstream branch: 9468f39 |
889e32b
to
6ca4ffe
Compare
5b81b0c
to
70e482f
Compare
Upstream branch: 654a338 |
6ca4ffe
to
3c03ab4
Compare
70e482f
to
9e790c7
Compare
Upstream branch: dfa94ce |
3c03ab4
to
791b013
Compare
…le btf_id is missing There is a UAF report in the bpf_struct_ops when CONFIG_MODULES=n. In particular, the report is on tcp_congestion_ops that has a "struct module *owner" member. For struct_ops that has a "struct module *owner" member, it can be extended either by the regular kernel module or by the bpf_struct_ops. bpf_try_module_get() will be used to do the refcounting and different refcount is done based on the owner pointer. When CONFIG_MODULES=n, the btf_id of the "struct module" is missing: WARN: resolve_btfids: unresolved symbol module Thus, the bpf_try_module_get() cannot do the correct refcounting. Not all subsystem's struct_ops requires the "struct module *owner" member. e.g. the recent sched_ext_ops. This patch is to disable bpf_struct_ops registration if the struct_ops has the "struct module *" member and the "struct module" btf_id is missing. The btf_type_is_fwd() helper is moved to the btf.h header file for this test. This has happened since the beginning of bpf_struct_ops which has gone through many changes. The Fixes tag is set to a recent commit that this patch can apply cleanly. Considering CONFIG_MODULES=n is not common and the age of the issue, targeting for bpf-next also. Fixes: 1611603 ("bpf: Create argument information for nullable arguments.") Reported-by: Robert Morris <[email protected]> Closes: https://lore.kernel.org/bpf/74665.1733669976@localhost/ Signed-off-by: Martin KaFai Lau <[email protected]> Tested-by: Eduard Zingerman <[email protected]> Acked-by: Eduard Zingerman <[email protected]>
Upstream branch: dfa94ce |
791b013
to
5d54c42
Compare
At least one diff in series https://patchwork.kernel.org/project/netdevbpf/list/?series=920022 irrelevant now. Closing PR. |
Pull request for series with
subject: bpf: Reject struct_ops registration that uses module ptr and the module btf_id is missing
version: 1
url: https://patchwork.kernel.org/project/netdevbpf/list/?series=920022