<story><title>OpenBSD system-call-origin verification</title><url>https://lwn.net/Articles/806776/</url></story><parent_chain><item><author>gok</author><text>This is a pretty weak security mitigation since any ROP attack will typically achieve return-to-libc anyway, but yelling at people who make syscalls directly is good.</text></item></parent_chain><comment><author>nineteen999</author><text>&amp;gt; but yelling at people who make syscalls directly is good.&lt;p&gt;Why though? Doesn&amp;#x27;t this mean that all non-C based languages are going to be treated somewhat as second class citizens, having to link the standard C library (eg. as Go is doing on some platforms) in order to call into the kernel?&lt;p&gt;While languages such as Go and Rust are aiming to replace&amp;#x2F;displace C due to it being designed in an age where security was considered less of an issue, it seems counter-intuitive to me that we should insist that they should link in the apparent attack surface of the standard C library. The syscall boundary seems an ideal place to make the delineation between the kernel and userland via an established API, and I would have expected that languages that want to displace C be able to use that interface directly in order to bypass the standard C library. That would seem to allow userlands to be built that include no C code whatsoever. But I&amp;#x27;m very obviously no expert.</text></comment>
<story><title>OpenBSD system-call-origin verification</title><url>https://lwn.net/Articles/806776/</url></story><parent_chain><item><author>gok</author><text>This is a pretty weak security mitigation since any ROP attack will typically achieve return-to-libc anyway, but yelling at people who make syscalls directly is good.</text></item></parent_chain><comment><author>throwaway2048</author><text>You still need an information leak of exact address of a libc function to achieve that, that will be different on every program invocation due to ASLR, and brute forcing is useless on a 64bit memory space. Even information leaks about the location of other less useful libc functions + offset isn&amp;#x27;t enough, because OpenBSD randomly relinks libc every boot, so just having the libc of a release to harvest offset information isn&amp;#x27;t useful.</text></comment>