TL;DR There are two Linux system calls for loading a kernel module - init_module and finit_module . By leveraging ...

Good technical write up on how this could be exploited

@ryuko@lemmy.ml
link
fedilink
0
edit-2
1Y

That’s a really interesting bypass; I wonder how this can be patched or mitigated considering the module is entirely loaded from memory. Short of setting noexec on temporary directories, I can’t think of any quick short term fixes.

Edit: Re-read the blog post and looked at the Github repo for the code- looks like this is more of a proof of concept of a SELinux confine bypass, as the kernel needs to be compiled with CONFIG_SECURITY_SELINUX_DEVELOP set. See the readme here, there’s some more notes that weren’t included in the blog post.

Original author here - just came across this thread and had a quick correction - CONFIG_SECURITY_SELINUX_DEVELOP is only required to disable SELinux for more userspace freedom (which was the goal of the proof of concept). However, once you have execution as kernel, you can really do whatever you want even if SELinux is still on (it’s just easier to operate in user-space IMO).

Create a post

A nice place to discuss rumors, happenings, innovations, and challenges in the technology sphere. We also welcome discussions on the intersections of technology and society. If it’s technological news or discussion of technology, it probably belongs here.

Remember the overriding ethos on Beehaw: Be(e) Nice. Each user you encounter here is a person, and should be treated with kindness (even if they’re wrong, or use a Linux distro you don’t like). Personal attacks will not be tolerated.

Subcommunities on Beehaw:


This community’s icon was made by Aaron Schneider, under the CC-BY-NC-SA 4.0 license.

  • 1 user online
  • 55 users / day
  • 243 users / week
  • 566 users / month
  • 2.51K users / 6 months
  • 1 subscriber
  • 3.16K Posts
  • 65.7K Comments
  • Modlog