Curl silently accepts boolean true for SSL_VERIFYHOST
| Bug #63363 | Curl silently accepts boolean true for SSL_VERIFYHOST | ||||
|---|---|---|---|---|---|
| Submitted: | 2012-10-25 16:41 UTC | Modified: | 2012-10-25 20:40 UTC | ||
| From: | ircmaxell@php.net | Assigned: | ircmaxell (profile) | ||
| Status: | Closed | Package: | *Network Functions | ||
| PHP Version: | Irrelevant | OS: | All | ||
| Private report: | No | CVE-ID: | None | ||
[2012-10-25 16:41 UTC] ircmaxell@php.net
Description: ------------ The CURL option SSL_VERIFYHOST accepts a long value to indicate the verification that should be applied. The following values are valid: 0 - No verification 1 - Check a host is present in cert 2 - Check cert's host matches request's host The problem is that a boolean true is cast to a long 1. Therefore, code that does the following: curl_setopt($c, CURLOPT_SSL_VERIFYHOST, true) appears to be verifying the host. However, it's actually not. This can create security issues that are very hard to find by reading code. Test script: --------------- <?php $c = curl_init(); curl_setopt($c, CURLOPT_SSL_VERIFYHOST, true); Expected result: ---------------- The option is set to verify the host. Actual result: -------------- The option is set to 1, which does not verify the host.
Patches
Pull Requests
History
AllCommentsChangesGit/SVN commits
[2012-10-25 17:16 UTC] ircmaxell@php.net
-Status: Open +Status: Assigned -Assigned To: +Assigned To: ircmaxell
[2012-10-25 18:51 UTC] jawed@php.net