Botan before 3.6.0, when certain LLVM versions are used, has compiler-induced secret-dependent control flow in lib/utils/ghash/ghash.cpp in GHASH in AES-GCM. There is a branch instead of an XOR with carry. This was observed for Clang in LLVM 15 on RISC-V.
The product behaves differently or sends different responses under different circumstances in a way that is observable to an unauthorized actor, which exposes security-relevant information about the state of the product, such as whether a particular operation was successful or not.
Link | Tags |
---|---|
https://github.com/randombit/botan/commit/53b0cfde580e86b03d0d27a488b6c134f662e957 | patch |
https://github.com/randombit/botan/compare/3.5.0...3.6.0 | product |
https://arxiv.org/pdf/2410.13489 | third party advisory technical description exploit |
https://news.ycombinator.com/item?id=41887153 | issue tracking |