[wp-trac] [WordPress Trac] #26010: SSL via `WP_Http_Curl` breaks on HTTP version mismatch
WordPress Trac
noreply at wordpress.org
Thu Nov 14 22:27:04 UTC 2013
#26010: SSL via `WP_Http_Curl` breaks on HTTP version mismatch
--------------------------+------------------------------
Reporter: soulseekah | Owner:
Type: defect (bug) | Status: new
Priority: normal | Milestone: Awaiting Review
Component: HTTP | Version: 3.7
Severity: minor | Resolution:
Keywords: |
--------------------------+------------------------------
Comment (by dd32):
This was caused by a cURL regression in 7.31.0, basically it's impossible
to tell with 100% certainty from PHP if it was a Network Error, Invalid
SSL data, injected-from-a-3rd-party SSL data, or, the cURL regression
which treated a specific SSL error as critical. We can check to see if
there was data received as you've done, but we can't verify it in all
circumstances.
Certain servers violate the TLS protocol (It closes the connection before
sending the TLS closing handshake, nginx does this in certain cases) which
causes this error to occur. In the case of nginx, it's only triggered when
it's a POST request with a body specified.
cURL 7.30.0, and cURL 7.32.0 do not have this issue, and handle the error
internally to detect the TLS violation error and ignore it in the right
circumstances - We can't do that as cURL doesn't expose the right error
messages for it.
The breaking change in [25303] is that we handle connection failures
during receive now, where as before we didn't. This is important in that
we don't return partial documents as a successful retrieval, previously if
there was a network error or timeout it was possible to receive only 20%
of the full document under the right circumstances.
Ultimately, I think it's best to simply disable HTTPS requests via the
broken version of cURL (see ticket below) for simplicity and reliability.
See also: #25716 - WordPress.org had the same trouble
See also: #25738 - Blacklisting of certain incompatible versions of curl
(including this one)
--
Ticket URL: <http://core.trac.wordpress.org/ticket/26010#comment:2>
WordPress Trac <http://core.trac.wordpress.org/>
WordPress blogging software
More information about the wp-trac
mailing list