Additional State-of-the-Art Baselines
August 7, 2023 ยท View on GitHub
In the Serberus paper, we evaluate only two partially secure state-of-the-art baselines, lfence+retpoline+ssbd (a.k.a. f+retp+ssbd) and slh+retpoline+ssbd (a.k.a. s+retp+ssbd). Here, we report results for two additional state-of-the-art baselines.

Our first new baseline is bladeslh+retpoline+ssbd, a composite mitigation which uses our LLVM implementation of BladeSLH
(which originally targets WebAssembly).
Our second new baseline is uslh+retpoline+ssbd, a composite mitigation which directly uses the published implementation of UltimateSLH for LLVM.
Our implementation of BladeSLH is more optimzed than the published version;
specifically, we harden CA stack loads using only one conditional move (into the stack pointer) at the beginning of each basic block that is the target of a conditional branch
(instead of hardening CA stack loads individually).
In implementing BladeSLH, we observe it is vulnerable to PHT SpecROP-style return address overwrites;
to render it a complete PHT mitigation, we insert a LFENCE before each return.
bladeslh+retpoline+ssbd and uslh+retpoline+ssbd exhibit 32.6%/11.4% and 21.1%/9.2% overhead, respectively, for all/large-buffer benchmarks.
Both have comparable or worse performance than Serberus/LLSCT with weaker security guarantees (e.g., they do not protect against Spectre-RSB).