Why is that so complicated?
Why is that so complicated?
Posted Oct 27, 2025 23:28 UTC (Mon) by muase (subscriber, #178466)Parent article: BPF signing LSM hook change rejected
After all, at least in the beginning, BPF programs are just bytes? So why can't we just read the program from disk into (kernel) memory, validate the signature over this blob, and then do the magic afterwards (per-version translation, relocation, ...)?
AFAIK the problem is probably not new – with dylibs, relocatable linkage, jar-files or other jittery stuff, and app-bundles, you already have payloads that are modified during runtime in ways the signature cannot cover. The solution is usually that you sign the precursor, because every runtime modification is either done by the OS (=trusted), or by the executed code from the precursor itself (=trusted).
So – what am I missing here? Where is my error? :D
Posted Oct 28, 2025 8:37 UTC (Tue)
by taladar (subscriber, #68407)
[Link] (1 responses)
But yes, that was my first thought too, your approach seems much simpler as far as signature verification is concerned.
Posted Oct 28, 2025 11:55 UTC (Tue)
by daroc (editor, #160859)
[Link]
But there has also been some work toward doing relocations in the kernel without using BPF; this is still an evolving area, and I would not be terribly surprised to see more related patch sets (and arguments) in the future.
Posted Oct 28, 2025 16:11 UTC (Tue)
by aszs (subscriber, #50252)
[Link]
Why is that so complicated?
Why is that so complicated?
Why is that so complicated?
