Biblioteka kryptograficzna Botan w wersji 3.11.0 zawiera błąd w logice walidacji ścieżki certyfikatów (CWE-295), który pozwala zaakceptować certyfikat end-entity jako zaufany root. Skutkuje to całkowitym obejściem weryfikacji PKI bez posiadania klucza prywatnego zaufanego CA.
▸ Pokaż oryginał (EN)
Botan is a C++ cryptography library. In 3.11.0, the function Certificate_Store::certificate_known had a misleading name; it would return true if any certificate in the store had a DN (and subject key identifier, if set) matching that of the argument. It did not check that the cert it found and the cert it was passed were actually the same certificate. In 3.11.0 an extension of path validation logic was made which assumed that certificate_known only returned true if the certificates were in fact identical. The impact is that if an end entity certificate is presented, and its DN (and subject key identifier, if set) match that of any trusted root, the end entity certificate is accepted immediately as if it itself were a trusted root. , This vulnerability is fixed in 3.11.1.
Funkcja Certificate_Store::certificate_known zwracała wartość true, jeśli certyfikat w magazynie posiadał zgodną nazwę DN (oraz opcjonalnie subject key identifier) z certyfikatem przekazanym jako argument — bez sprawdzenia, czy oba certyfikaty są faktycznie identyczne. Rozszerzenie logiki walidacji ścieżki wprowadzone w wersji 3.11.0 błędnie zakładało, że funkcja ta potwierdza tożsamość certyfikatów, a nie jedynie podobieństwo metadanych. W efekcie atakujący może przedstawić dowolny certyfikat end-entity, którego DN (i ewentualnie subject key identifier) pokrywają się z danymi jakiegokolwiek zaufanego root CA, a system zaakceptuje go natychmiast jako zaufany korzeń.
Atakujący może ominąć weryfikację łańcucha zaufania TLS lub PKI i podszyć się pod zaufany urząd certyfikacji, co umożliwia przeprowadzenie ataków man-in-the-middle lub uwierzytelnienie się bez posiadania właściwego certyfikatu.
Należy zaktualizować bibliotekę Botan do wersji 3.11.1, w której podatność została naprawiona.
Botan Project Botan w wersji 3.11.0
Podatność dotyczy wyłącznie wersji 3.11.0 — błąd został wprowadzony i naprawiony w kolejnych wydaniach minor. Szczegółowe informacje dostępne w oficjalnym security advisory na GitHub (GHSA-v782-6fq4-q827).
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:XBotan Project Botan
APPBotan Project3.11.0
Powiązane podatności
In Botan before 2.19.3, it is possible to forge OCSP responses due to a certificate verification error. This i...
In Botan before 2.17.3, constant-time computations are not used for certain decoding and encoding operations (...
Botan 2.2.0 - 2.4.0 (fixed in 2.5.0) improperly handled wildcard certificates and could accept certain certifi...
The Curve25519 code in botan before 1.11.31, on systems without a native 128-bit integer type, might allow att...
botan 1.11.x before 1.11.22 improperly handles wildcard matching against hostnames, which might allow remote a...