Comment 15 for bug 1951279

Revision history for this message
David Hess (dhess-8) wrote (last edit ):

After a lot of sleuthing with gdb, I'm pretty confident this is the source of (and fix for) the crash we are seeing with libssl1.1:arm64 1.1.1f-1ubuntu2.10:

https://github.com/openssl/openssl/commit/fcf6e9d056162d5af64c6f7209388a5c3be2ce57

It's a bug fix for some pointer authentication assembly instructions for the Poly1305 arm64 assembly code. These instructions only execute (and crash) on Arm v8.3 64 bit processors - they NOOP on other processors that don't understand them.

Note, I have no idea why that code would not also be a problem and crash under valgrind, but I've definitely narrowed this particular crash outside of valgrind down to that location. Maybe valigrind disables pointer authentication....?

It appears the commit above was landed in OpenSSL 1.1.1i:

https://github.com/openssl/openssl/blob/OpenSSL_1_1_1i/crypto/poly1305/asm/poly1305-armv8.pl

Bottom line, in order to prevent crashes on Arm v8.3 processors I believe addressing this requires an upgrade of libssl1.1 to OpenSSL 1.1.1i or patching with that commit.