Skip to content

Commit 90dcb0a

Browse files
nwf-msrrmn30
authored andcommitted
1 parent 344c945 commit 90dcb0a

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

archdoc/chap-cheri-riscv.tex

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -474,13 +474,14 @@ \subsection{Sealed capabilities}
474474
Because CHERIoT allows manipulating the status of the interrupt through a function call (and function return) by encoding the interrupt type in the otype, the following attack can occur: A caller calling an interrupt-disabling callee can set the return sentry of the callee to the same callee. This means, the callee will call itself on return all the while operating with interrupts disabled. This will lead to infinite repeated calls to the callee with interrupts disabled, violating availability. This attack can be prevented in CHERIoT by adding two new ``backwards-edge'' sentries and adding more checks on \insnriscvref{CJALR}, i.e. only the following combinations are allowed in \insnriscvref{CJALR}:
475475

476476
\begin{center}
477+
\footnotesize
477478
\begin{tabular}{|c|c|c|c|}
478479
\hline
479480
\asm{cs1} & \asm{cd} & Used for & Valid \cotype{}s \\
480481
\hline
481482
\asm{\$cra} & \asm{\$cnull} & Function return & Return sentries $(4, 5)$\\
482483
$\ne$ \asm{\$cra} & \asm{\$cnull} & Tail call & Unsealed or interrupt inheriting forward sentry $(0, 1)$\\
483-
any & $\ne$ \asm{\$cnull} & Function call & Unsealed or interrupt inheriting forward sentry $(0, 1)$\\
484+
any & $\not\in \{ \text{\asm{\$cnull}}, \text{\asm{\$cra}} \}$ & Function call & Unsealed or interrupt inheriting forward sentry $(0, 1)$\\
484485
any & \asm{\$cra} & Function call & Unsealed or forward sentries $(0, 1, 2, 3)$\\
485486
\hline
486487
\end{tabular}

0 commit comments

Comments
 (0)