K.S. Bhaskar via plug on 31 Jul 2020 07:06:21 -0700


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: [PLUG] TRAMPFD?


You don't need to use the stack, and indeed you should not use the stack or the heap for this purpose. Applications should create a small private storage pool, create the trampoline in that, call it (and ideally destroy it when done).

Of historical interest, I first saw trampolines on the stack for use with the 8080 microprocessor, which had the IO port hard-wired into the instruction. To create an IO function that could take the port as a parameter, the Whitesmiths C compiler would dynamically create an IO instruction on the stack.

Regards
– Bhaskar

On Fri, Jul 31, 2020 at 6:38 AM Michael Lazin via plug <plug@lists.phillylinux.org> wrote:
I was curious about this myself and looked it up and found Wikipedia has different definitions for a trampoline in computing depending upon context, but this appears to be the definition relevant to the article:

In the GCC compiler, trampoline refers to a technique for implementing pointers to nested functions.[7] The trampoline is a small piece of code which is constructed on the fly on the stack when the address of a nested function is taken. The trampoline sets up the static link pointer, which allows the nested function to access local variables of the enclosing function. The function pointer is then simply the address of the trampoline. This avoids having to use "fat" function pointers for nested functions which carry both the code address and the static link.[8][9][10] This however conflicts with the tendency to make the stack non-executable though for security reasons.

I am not an expert on c programming but to simplify the essence of Microsoft's proposed kernel contribution it looks like they are hardening the kernel against an attack vector made possible by c programming which is done without security in mind, which would be common in the open source community because there are many c programmers but few who code with security in mind.  Microsoft appears to be providing a kernel fix for a pandora's box caused by a common programming practice.

On Thu, Jul 30, 2020, 10:44 AM jeff via plug <plug@lists.phillylinux.org> wrote:
https://www.phoronix.com/scan.php?page=news_item&px=Microsoft-TRAMPFD-Linux

A Microsoft engineer is proposing the Trampoline File Descriptor
"TRAMPFD" as a new kernel API for securely dealing with trampoline code
on systems. There are concerns already over the potential performance
implications but there does seem to be some interest in this approach.


Reading the article did nothing to help me understand what they're
talking about, but it looked relevant.

How the hell can you fit a trampoline in code? Those things are huge.
I'll bet it has a JUMP command.

(sorry)
___________________________________________________________________________
Philadelphia Linux Users Group         --        http://www.phillylinux.org
Announcements - http://lists.phillylinux.org/mailman/listinfo/plug-announce
General Discussion  --   http://lists.phillylinux.org/mailman/listinfo/plug
___________________________________________________________________________
Philadelphia Linux Users Group         --        http://www.phillylinux.org
Announcements - http://lists.phillylinux.org/mailman/listinfo/plug-announce
General Discussion  --   http://lists.phillylinux.org/mailman/listinfo/plug
___________________________________________________________________________
Philadelphia Linux Users Group         --        http://www.phillylinux.org
Announcements - http://lists.phillylinux.org/mailman/listinfo/plug-announce
General Discussion  --   http://lists.phillylinux.org/mailman/listinfo/plug