{"vuid":"VU#686224","idnumber":"686224","name":"OpenSSL does not securely handle invalid public key when configured to ignore errors","keywords":["fuzz","black box","test suite","tls","ssl","openssl","asn.1","ber","NISCC/006489/openssl/2","public key","debug","X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY"],"overview":"A vulnerability in the way OpenSSL handles invalid public keys in client certificate messages could allow a remote attacker to cause a denial of service. This vulnerability requires as a precondition that an application is configured to ignore public key decoding errors, which is typically only the case during debugging.","clean_desc":"OpenSSL implements the Secure Sockets Layer (SSL) and Transport Layer Security (TLS) protocols and includes a general-purpose cryptographic library. SSL and TLS are commonly used to provide authentication, encryption, integrity, and non-repudiation services to network applications such as HTTP, IMAP, POP3, LDAP, and others. Clients and servers exchange authentication information in X.509 certificates. While the SSL and TLS protocols are not directly based on ASN.1, they do rely on ASN.1 objects used in X.509 certificates. OpenSSL certificate verification code contains a vulnerability that can be triggered by an invalid public key in a client certificate message. This vulnerability only occurs if the application is configured to ignore all errors or the specific error X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY. Typically, an application would only ignore public key decoding errors for debugging purposes. Production applications should not be configured this way, since ignoring these errors effectively disables certificate signature verification. From the OpenSSL advisory:<blockquote><pre><font face=\"courier\">\n3. A malformed public key in a certificate will crash the verify code if\nit is set to ignore public key decoding errors. Public key decode errors\nare not normally ignored, except for debugging purposes, so this is\nunlikely to affect production code. Exploitation of an affected\napplication would result in a denial of service vulnerability. </font> </pre> </blockquote> The U.K. National Infrastructure Security Co-ordination Centre (NISCC) is tracking this vulnerability as NISCC/006489/openssl/2.","impact":"By sending a specially crafted client certificate message to a vulnerable system, a remote attacker could cause a denial of service.","resolution":"Upgrade or Patch\nUpgrade to OpenSSL 0.9.7c  or 0.9.6k. Alternatively, upgrade or apply a patch as specified by your vendor. Further information is available in an advisory from OpenSSL. Note that it is necessary to recompile any applications that are statically linked to OpenSSL libraries.","workarounds":"Verify application configuration A necessary precondition of this vulnerability is that an application is configured to ignore public key decoding errors. Verify that production applications are not configured this way.","sysaffected":"","thanks":"This vulnerability was discovered and researched by \nNISCC\n. Thanks also to Stephen Henson of the OpenSSL project.","author":"This document was written by Art Manion.","public":["http://www.uniras.gov.uk/vuls/2003/006489/openssl.htm","http://wp.netscape.com/eng/ssl3/","http://www.ietf.org/rfc/rfc2246.txt","http://www.ietf.org/html.charters/pkix-charter.html","http://www.itu.int/ITU-T/studygroups/com10/languages/"],"cveids":[""],"certadvisory":"CA-2003-26","uscerttechnicalalert":null,"datecreated":"2003-09-10T14:30:10Z","publicdate":"2003-09-30T00:00:00Z","datefirstpublished":"2003-09-30T15:23:04Z","dateupdated":"2003-10-01T22:26:43Z","revision":34,"vrda_d1_directreport":"","vrda_d1_population":"","vrda_d1_impact":"","cam_widelyknown":"15","cam_exploitation":"0","cam_internetinfrastructure":"10","cam_population":"2","cam_impact":"5","cam_easeofexploitation":"16","cam_attackeraccessrequired":"20","cam_scorecurrent":"1.5","cam_scorecurrentwidelyknown":"1.8","cam_scorecurrentwidelyknownexploited":"3","ipprotocol":"","cvss_accessvector":"","cvss_accesscomplexity":"","cvss_authentication":null,"cvss_confidentialityimpact":"","cvss_integrityimpact":"","cvss_availabilityimpact":"","cvss_exploitablity":null,"cvss_remediationlevel":"","cvss_reportconfidence":"","cvss_collateraldamagepotential":"","cvss_targetdistribution":"","cvss_securityrequirementscr":"","cvss_securityrequirementsir":"","cvss_securityrequirementsar":"","cvss_basescore":"","cvss_basevector":"","cvss_temporalscore":"","cvss_environmentalscore":"","cvss_environmentalvector":"","metric":1.5,"vulnote":null}