When CURLOPT_PINNEDPUBLICKEY is configured alongside options that disable standard peer verification (CURLOPT_SSL_VERIFYPEER = 0 and CURLOPT_SSL_VERIFYHOST = 0), libcurl fails to enforce public key pinning on connections established without a presented server certificate. Bypassing the pinning check under these disabled-verification conditions allows unauthenticated connections to succeed when they should be rejected.
{
"binaries": [
{
"binary_name": "curl",
"binary_version": "7.81.0-1ubuntu1.29"
},
{
"binary_name": "libcurl3-gnutls",
"binary_version": "7.81.0-1ubuntu1.29"
},
{
"binary_name": "libcurl3-nss",
"binary_version": "7.81.0-1ubuntu1.29"
},
{
"binary_name": "libcurl4",
"binary_version": "7.81.0-1ubuntu1.29"
}
]
}{
"binaries": [
{
"binary_name": "curl",
"binary_version": "7.47.0-1ubuntu2.19+esm18"
},
{
"binary_name": "libcurl3",
"binary_version": "7.47.0-1ubuntu2.19+esm18"
},
{
"binary_name": "libcurl3-gnutls",
"binary_version": "7.47.0-1ubuntu2.19+esm18"
},
{
"binary_name": "libcurl3-nss",
"binary_version": "7.47.0-1ubuntu2.19+esm18"
}
]
}{
"binaries": [
{
"binary_name": "curl",
"binary_version": "7.58.0-2ubuntu3.24+esm12"
},
{
"binary_name": "libcurl3-gnutls",
"binary_version": "7.58.0-2ubuntu3.24+esm12"
},
{
"binary_name": "libcurl3-nss",
"binary_version": "7.58.0-2ubuntu3.24+esm12"
},
{
"binary_name": "libcurl4",
"binary_version": "7.58.0-2ubuntu3.24+esm12"
}
]
}{
"binaries": [
{
"binary_name": "curl",
"binary_version": "7.68.0-1ubuntu2.25+esm9"
},
{
"binary_name": "libcurl3-gnutls",
"binary_version": "7.68.0-1ubuntu2.25+esm9"
},
{
"binary_name": "libcurl3-nss",
"binary_version": "7.68.0-1ubuntu2.25+esm9"
},
{
"binary_name": "libcurl4",
"binary_version": "7.68.0-1ubuntu2.25+esm9"
}
]
}