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_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", "binary_version": "2.19.1+dfsg-2ubuntu1+esm1" } ] }
{ "availability": "Available with Ubuntu Pro: https://ubuntu.com/pro", "binaries": [ { "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", "binary_version": "2.19.3+dfsg-1ubuntu2+esm1" } ] }
{ "availability": "No subscription required", "binaries": [ { "binary_name": "libbotan-2-19", "binary_version": "2.19.5+dfsg-4" }, { "binary_name": "libbotan-2-19-dbgsym", "binary_version": "2.19.5+dfsg-4" }, { "binary_name": "libbotan-2-dev", "binary_version": "2.19.5+dfsg-4" }, { "binary_name": "libbotan-2-doc", "binary_version": "2.19.5+dfsg-4" } ] }