The product does not check the revocation status of a certificate after its initial revocation check, which can cause the product to perform privileged actions even after the certificate is revoked at a later time.
If the revocation status of a certificate is not checked before each action that requires privileges, the system may be subject to a race condition. If a certificate is revoked after the initial check, all subsequent actions taken with the owner of the revoked certificate will lose all benefits guaranteed by the certificate. In fact, it is almost certain that the use of a revoked certificate indicates malicious activity.
Threat Mapped score: 0.0
Industry: Finiancial
Threat priority: Unclassified
N/A
Phase | Note |
---|---|
Implementation | N/A |
Intro: The following code checks a certificate before performing an action.
Body: While the code performs the certificate verification before each action, it does not check the result of the verification after the initial attempt. The certificate may have been revoked in the time between the privileged actions.
if (cert = SSL_get_peer_certificate(ssl)) { foo=SSL_get_verify_result(ssl); if (X509_V_OK==foo) //do stuff foo=SSL_get_verify_result(ssl); //do more stuff without the check.