Description
The software uses OpenSSL and trusts or uses a certificate without using the SSL_get_verify_result() function to ensure that the certificate satisfies all necessary security requirements.
This could allow an attacker to use an invalid certificate to claim to be a trusted host, use expired certificates, or conduct other attacks that could be detected if the certificate is properly validated.
Modes of Introduction:
– Architecture and Design
Related Weaknesses
Consequences
Confidentiality: Read Application Data
The data read may not be properly secured, it might be viewed by an attacker.
Access Control: Bypass Protection Mechanism, Gain Privileges or Assume Identity
Trust afforded to the system in question may allow for spoofing or redirection attacks.
Access Control: Gain Privileges or Assume Identity
If the certificate is not checked, it may be possible for a redirection or spoofing attack to allow a malicious host with a valid certificate to provide data under the guise of a trusted host. While the attacker in question may have a valid certificate, it may simply be a valid certificate for a different site. In order to ensure data integrity, we must check that the certificate is valid, and that it pertains to the site we wish to access.
Potential Mitigations
Phase: Architecture and Design
Description:
Ensure that proper authentication is included in the system design.
Phase: Implementation
Description:
Understand and properly implement all checks necessary to ensure the identity of entities involved in encrypted communications.