是否有任何可行的PoC, clang堆栈检测与arm64 MTE?我尝试使用arm64 MTE启用clang堆栈检测,但面临clang中出现的错误,导致误报MTE报告。我报告了LLVM bugzilla - https://bugs.llvm.org/show_bug.cgi?id=51362中的问题。有趣的是,有人成功地用arm64 MTE运行clang堆栈检测吗?
整个堆栈应该用一些默认的分配标签来初始化:
char *sp = alloc_kernel_stack();
/* set the logical tag */
sp = insert_random_tag(sp);
for (i = 0; i < STACK_SIZE; i += 16) {
/* set the allocation tag */
set_tag(sp);
sp += i;
}
这将修复MTE误报。更多细节可以在这里找到- https://bugs.llvm.org/show_bug.cgi?id=51362