Messages in this thread | | | Date | Fri, 21 Feb 2020 23:27:46 +0900 | From | Masami Hiramatsu <> | Subject | Re: [PATCH 0/3] Unexport kallsyms_lookup_name() and kallsyms_on_each_symbol() |
| |
Hi Will,
On Fri, 21 Feb 2020 11:44:01 +0000 Will Deacon <will@kernel.org> wrote:
> Hi folks, > > Despite having just a single modular in-tree user that I could spot, > kallsyms_lookup_name() is exported to modules and provides a mechanism > for out-of-tree modules to access and invoke arbitrary, non-exported > kernel symbols when kallsyms is enabled. > > This patch series fixes up that one user and unexports the symbol along > with kallsyms_on_each_symbol(), since that could also be abused in a > similar manner.
What kind of issue would you like to fix with this? There are many ways to find (estimate) symbol address, especially, if the programmer already has the symbol map, it is *very* easy to find the target symbol address even from one exported symbol (the distance of 2 symbols doesn't change.) If not, they can use kprobes to find their required symbol address. If they have a time, they can use snprintf("%pF") to search symbol.
So, for me, this series just make it hard for casual developers (but maybe they will find the answer on any technical Q&A site soon).
Hmm, are there other good way to detect such bad-manner out-of-tree module and reject them? What about decoding them and monitor their all call instructions?
Thank you,
-- Masami Hiramatsu <mhiramat@kernel.org>
| |