CWE-295 · Słabość
Improper Certificate Validation
- Abstrakcja
- Bazowa
- Status
- Szkic
- Dodano
- 19 lipca 2006
- Ostatnia zmiana
- 30 kwietnia 2026
Opis
The product does not validate, or incorrectly validates, a certificate.
Skutki
Integrity, Authentication
Bypass Protection Mechanism; Gain Privileges or Assume Identity
When a certificate is invalid or malicious, it might allow an attacker to spoof a trusted entity by interfering in the communication path between the host and client. The product might connect to a malicious host while believing it is a trusted host, or the product might be deceived into accepting spoofed data that appears to originate from a trusted host.
Zapobieganie
Architecture and Design, Implementation
Certificates should be carefully managed and checked to assure that data are encrypted with the intended owner's public key.
Implementation
If certificate pinning is being used, ensure that all relevant properties of the certificate are fully validated before the certificate is pinned, including the hostname.
Przykłady podatności
- CVE-2019-12496 A Go framework for robotics, drones, and IoT devices skips verification of root CA certificates by default.
- CVE-2014-1266 Chain: incorrect "goto" in Apple SSL product bypasses certificate validation, allowing Adversary-in-the-Middle (AITM) attack (Apple "goto fail" bug). CWE-705 (Incorrect Control Flow Scoping) -> CWE-561 (Dead Code) -> CWE-295 (Improper Certificate Validation) -> CWE-393 (Return of Wrong Status Code) -> CWE-300 (Channel Accessible by Non-Endpoint). The code's whitespace indentation did not reflect the actual control flow (CWE-1114) and did not explicitly delimit the block (CWE-483), which could have made it more difficult for human code auditors to detect the vulnerability.
- CVE-2021-22909 Chain: router's firmware update procedure uses curl with "-k" (insecure) option that disables certificate validation (CWE-295), allowing adversary-in-the-middle (AITM) compromise with a malicious firmware image (CWE-494).
- CVE-2008-4989 Verification function trusts certificate chains in which the last certificate is self-signed.
- CVE-2012-5821 Web browser uses a TLS-related function incorrectly, preventing it from verifying that a server's certificate is signed by a trusted certification authority (CA)
- CVE-2009-3046 Web browser does not check if any intermediate certificates are revoked.
- CVE-2011-0199 Operating system does not check Certificate Revocation List (CRL) in some cases, allowing spoofing using a revoked certificate.
- CVE-2012-5810 Mobile banking application does not verify hostname, leading to financial loss.
- CVE-2012-3446 Cloud-support library written in Python uses incorrect regular expression when matching hostname.
- CVE-2009-2408 Web browser does not correctly handle '\0' character (NUL) in Common Name, allowing spoofing of https sites.
- CVE-2012-2993 Smartphone device does not verify hostname, allowing spoofing of mail services.
- CVE-2012-5822 Application uses third-party library that does not validate hostname.
- CVE-2012-5819 Cloud storage management application does not validate hostname.
- CVE-2012-5817 Java library uses JSSE SSLSocket and SSLEngine classes, which do not verify the hostname.
- CVE-2010-1378 Chain: incorrect calculation (CWE-682) allows attackers to bypass certificate checks (CWE-295)
- CVE-2007-6746 library for SSL and TLS does not check the activation or expiration dates of CA certificates
- CVE-2005-3170 LDAP client accepts certificates even if they are not from a trusted CA.
- CVE-2009-0265 chain: DNS server does not correctly check return value from the OpenSSL EVP_VerifyFinal function allows bypass of validation of the certificate chain.
- CVE-2003-1229 chain: product checks if client is trusted when it intended to check if the server is trusted, allowing validation of signed code.
- CVE-2002-0862 Cryptographic API, as used in web browsers, mail clients, and other software, does not properly validate Basic Constraints.
- CVE-2009-1358 chain: OS package manager does not check properly check the return value, allowing bypass using a revoked certificate.
Słabość nadrzędna
Pokrewna
Słabości podrzędne
Kiedy powstaje
- Architecture and Design
- Implementation — REALIZATION: This weakness is caused during implementation of an architectural security tactic.
- Implementation — When the product uses certificate pinning, the developer might not properly validate all relevant components of the certificate before pinning the certificate. This can make it difficult or expensive to test after the pinning is complete.
Dotyczy
Not Language-Specific, Not Technology-Specific, Web Based, Mobile
Źródła
- Why Eve and Mallory Love Android: An Analysis of Android SSL (In)Security — Sascha Fahl, Marian Harbach, Thomas Muders, Matthew Smith, Lars Baumgärtner, Bernd Freisleben, 2012
- Computer Security: Art and Science — M. Bishop, Addison-Wesley, 2003
- State-of-the-Art Resources (SOAR) for Software Vulnerability Detection, Test, and Evaluation — Gregory Larsen, E. Kenneth Hong Fong, David A. Wheeler, Rama S. Moorthy, 2014
Wpis z katalogu CWE 4.20.