Bug 1169118 - [ARMv8.3+] unwinding across mixed pac-ret and non-pac-ret frames is broken
[ARMv8.3+] unwinding across mixed pac-ret and non-pac-ret frames is broken
Status: RESOLVED FIXED
Classification: openSUSE
Product: openSUSE Tumbleweed
Classification: openSUSE
Component: Development
Current
aarch64 All
: P5 - None : Normal (vote)
: ---
Assigned To: Richard Biener
E-mail List
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2020-04-09 14:36 UTC by Guillaume GARDET
Modified: 2021-10-19 09:18 UTC (History)
2 users (show)

See Also:
Found By: ---
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Guillaume GARDET 2020-04-09 14:36:38 UTC
libgcc unwinder on aarch64 fails to keep track of Pointer Authentication state and may try to authenticate return addresses that were not signed causing a runtime crash.

Upstream report: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94514

Patch sent upstream: https://gcc.gnu.org/pipermail/gcc-patches/2020-April/543641.html

For the record, the kernel currently allows userspace Pointer Authentication, but AFAIK, all SUSE/openSUSE packages are compiled _without_ this feature. Nevertheless, users can compile their own packages with this feature enabled.
Only ARMv8.3 (and later) hardware are affected.
Comment 1 Richard Biener 2020-04-09 15:07:35 UTC
Tumbleweed will pick it up via upstream.
Comment 2 Guillaume GARDET 2020-04-09 15:31:35 UTC
(In reply to Richard Biener from comment #1)
> Tumbleweed will pick it up via upstream.

Yes, but Leap/SLE are also affected and would require some backports.
Comment 3 Guillaume GARDET 2020-04-22 07:23:56 UTC
Upstream commit in gcc10 branch: https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;h=fb22faf48f6eb518932f24005f8606e5f19a7304
Comment 4 Guillaume GARDET 2021-10-19 09:18:51 UTC
Fixed in Tumbleweed.