Botan before 3.6.0, when certain GCC versions are used, has a compiler-induced secret-dependent operation in lib/utils/donna128.h in donna128 (used in Chacha-Poly1305 and x25519). An addition can be skipped if a carry is not set. This was observed for GCC 11.3.0 with -O2 on MIPS, and GCC on x86-i386. (Only 32-bit processors can be affected.)
{ "availability": "Available with Ubuntu Pro: https://ubuntu.com/pro", "binaries": [ { "binary_version": "2.19.1+dfsg-2ubuntu1+esm1", "binary_name": "botan" }, { "binary_version": "2.19.1+dfsg-2ubuntu1+esm1", "binary_name": "botan-dbgsym" }, { "binary_version": "2.19.1+dfsg-2ubuntu1+esm1", "binary_name": "libbotan-2-19" }, { "binary_version": "2.19.1+dfsg-2ubuntu1+esm1", "binary_name": "libbotan-2-19-dbgsym" }, { "binary_version": "2.19.1+dfsg-2ubuntu1+esm1", "binary_name": "libbotan-2-dev" }, { "binary_version": "2.19.1+dfsg-2ubuntu1+esm1", "binary_name": "libbotan-2-doc" }, { "binary_version": "2.19.1+dfsg-2ubuntu1+esm1", "binary_name": "python3-botan" } ] }
{ "availability": "Available with Ubuntu Pro: https://ubuntu.com/pro", "binaries": [ { "binary_version": "2.19.3+dfsg-1ubuntu2+esm1", "binary_name": "botan" }, { "binary_version": "2.19.3+dfsg-1ubuntu2+esm1", "binary_name": "botan-dbgsym" }, { "binary_version": "2.19.3+dfsg-1ubuntu2+esm1", "binary_name": "libbotan-2-19" }, { "binary_version": "2.19.3+dfsg-1ubuntu2+esm1", "binary_name": "libbotan-2-19-dbgsym" }, { "binary_version": "2.19.3+dfsg-1ubuntu2+esm1", "binary_name": "libbotan-2-dev" }, { "binary_version": "2.19.3+dfsg-1ubuntu2+esm1", "binary_name": "libbotan-2-doc" }, { "binary_version": "2.19.3+dfsg-1ubuntu2+esm1", "binary_name": "python3-botan" } ] }