]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
arm64: probes: Add GCS support to bl/blr/ret
authorJeremy Linton <jeremy.linton@arm.com>
Mon, 25 Aug 2025 03:34:18 +0000 (22:34 -0500)
committerWill Deacon <will@kernel.org>
Tue, 16 Sep 2025 20:33:25 +0000 (21:33 +0100)
commitefb07ac534e24e22a7eb32815fb50f69931cdeae
tree3779557bafb4f42a35563104dfa7e9555a0c0e6d
parent9cd2a7f1180f9b6fe5214abc90eaf5c053f545ee
arm64: probes: Add GCS support to bl/blr/ret

The arm64 probe simulation doesn't currently have logic in place
to deal with GCS and this results in core dumps if probes are inserted
at control flow locations. Fix-up bl, blr and ret to manipulate the
shadow stack as needed.

While we manipulate and validate the shadow stack correctly, the
hardware provides additional security by only allowing GCS operations
against pages which are marked to support GCS. For writing there is
gcssttr() which enforces this, but there isn't an equivalent for
reading. This means that uprobe users should be aware that probing on
control flow instructions which require reading the shadow stack (ex:
ret) offers lower security guarantees than what is achieved without
the uprobe active.

Signed-off-by: Jeremy Linton <jeremy.linton@arm.com>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Will Deacon <will@kernel.org>
arch/arm64/kernel/probes/simulate-insn.c