Skip to content

Commit

Permalink
Explain no XOM.
Browse files Browse the repository at this point in the history
Fixes #11
  • Loading branch information
davidchisnall committed Feb 21, 2025
1 parent 2777bec commit f394e7d
Showing 1 changed file with 12 additions and 0 deletions.
12 changes: 12 additions & 0 deletions text/concepts.tex
Original file line number Diff line number Diff line change
Expand Up @@ -285,6 +285,18 @@ \section{Restricting memory access with compressed bounds}

The access-system-registers permission controls access to a small number of privileged registers and is never handed out to code other than a tiny trusted component in the core of the RTOS.

\begin{caution}
The CHERIoT encoding stores 12 permissions in five bits by excluding meaningless combinations and some that are not normally useful.
This comes with a few limitations, most notably that execute permission implies load.
It is not possbile to remove load permission from an executable capability.
Some modern platforms support \keyword{execute-only memory} as a security feature.
CHERIoT cannot express this but this does not cause practical problems for security.
The sentry mechanism (described in \ref{sealing_intro}) lets you have memory that readable \textem{only} while executing from it, which is a more useful security property.
Execute-only memory normally aims to prevent information leaks that lead to code-reuse attacks.
These attacks, in turn, are triggered via pointer injection or other memory-safety violations, which CHERIoT deterministically mitigates.
\end{caution}


\section{Building memory safety}

Memory safety is a property of a source-level abstract machine.
Expand Down

0 comments on commit f394e7d

Please sign in to comment.