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.
[
{
"signature_type": "Line",
"target": {
"file": "src/lib/utils/donna128.h"
},
"source": "https://github.com/randombit/botan/commit/53b0cfde580e86b03d0d27a488b6c134f662e957",
"deprecated": false,
"id": "CVE-2024-50382-26cdcaea",
"signature_version": "v1",
"digest": {
"line_hashes": [
"126919531198109600670305180861805806198",
"47027288753694363130089521202152577733",
"263451663412783185999844650754253064521",
"317664375744814807110685203567803694964",
"192798379601031292957747122793573782265",
"152746210731360794603556943365478611757",
"246680631869523581155615701478946827435",
"234213935555240666678775579274190960278",
"153068232029709647583119557210309603557",
"103595958058659321366621553752559120036",
"16983010423492160011678054637918267363"
],
"threshold": 0.9
}
},
{
"signature_type": "Function",
"target": {
"function": "operator+=",
"file": "src/lib/utils/donna128.h"
},
"source": "https://github.com/randombit/botan/commit/53b0cfde580e86b03d0d27a488b6c134f662e957",
"deprecated": false,
"id": "CVE-2024-50382-59086b84",
"signature_version": "v1",
"digest": {
"length": 113.0,
"function_hash": "113240240772205969688468516196387758560"
}
},
{
"signature_type": "Function",
"target": {
"function": "GHASH::key_schedule",
"file": "src/lib/utils/ghash/ghash.cpp"
},
"source": "https://github.com/randombit/botan/commit/53b0cfde580e86b03d0d27a488b6c134f662e957",
"deprecated": false,
"id": "CVE-2024-50382-74e973ae",
"signature_version": "v1",
"digest": {
"length": 782.0,
"function_hash": "263419540320011672964078588133153699739"
}
},
{
"signature_type": "Line",
"target": {
"file": "src/lib/utils/ghash/ghash.cpp"
},
"source": "https://github.com/randombit/botan/commit/53b0cfde580e86b03d0d27a488b6c134f662e957",
"deprecated": false,
"id": "CVE-2024-50382-9e6e9f58",
"signature_version": "v1",
"digest": {
"line_hashes": [
"149196067096857216389568200283793391311",
"259405174184722127687927409568629724662",
"133516367246839249334925645775850140497",
"117102124029184724036706851708733937691"
],
"threshold": 0.9
}
},
{
"signature_type": "Function",
"target": {
"function": "operator+=",
"file": "src/lib/utils/donna128.h"
},
"source": "https://github.com/randombit/botan/commit/53b0cfde580e86b03d0d27a488b6c134f662e957",
"deprecated": false,
"id": "CVE-2024-50382-d75ed31a",
"signature_version": "v1",
"digest": {
"length": 146.0,
"function_hash": "81898273412369779755549984092706126000"
}
}
]