Skip to content

Conversation

@qwattash
Copy link
Contributor

This is an experimental patch that uses LOCAL/GLOBAL to prevent kernel pointers from leaking to userspace.

The patch needs some testing and some more work.

TODO:

  • Check that I got all places where a user page is mapped into the kernel.
  • Deal with direct map pages that happen to be user pages.
  • Ensure that kernel capabilities can not flow into user trapframe structures.

This option enables an experimental use of the local/global capability
permission bits to prevent kernel capability leak to userspace.
Strip GLOBAL permission bit from kernel capabilities and the STORE_LOCAL
permission bit in copyin/out.
Report whether the kernel uses capability flow restriction.
This should only be used to peform data I/O and it is expected that it should
not leak kernel capabilities.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants