The intx509paramsethosts function in lib/libcrypto/x509/x509_vpm.c in LibreSSL 2.7.0 before 2.7.1 does not support a certain special case of a zero name length, which causes silent omission of hostname verification, and consequently allows man-in-the-middle attackers to spoof servers and obtain sensitive information via a crafted certificate. NOTE: the LibreSSL documentation indicates that this special case is supported, but the BoringSSL documentation does not.
[
{
"signature_type": "Function",
"digest": {
"length": 675.0,
"function_hash": "124066432240387748490862556255300495937"
},
"source": "https://github.com/libressl/openbsd/commit/0654414afcce51a16d35d05060190a3ec4618d42",
"deprecated": false,
"id": "CVE-2018-8970-1fc07437",
"signature_version": "v1",
"target": {
"function": "int_x509_param_set_hosts",
"file": "src/lib/libcrypto/x509/x509_vpm.c"
}
},
{
"signature_type": "Line",
"digest": {
"line_hashes": [
"70783060215513847624548349568642194857",
"288999768788510714880779861120358134171",
"197705374756881059557087188571414980896",
"87837263733689742431856688096169499200"
],
"threshold": 0.9
},
"source": "https://github.com/libressl/openbsd/commit/0654414afcce51a16d35d05060190a3ec4618d42",
"deprecated": false,
"id": "CVE-2018-8970-3ec5e240",
"signature_version": "v1",
"target": {
"file": "src/lib/libcrypto/x509/x509_vpm.c"
}
}
]