http: do not leak basic auth credentials on re-used connections

CVE-2015-3236

This partially reverts commit curl-7_39_0-237-g87c4abb

Reported-by: Tomas Tomecek, Kamil Dudka
Bug: http://curl.haxx.se/docs/adv_20150617A.html
This commit is contained in:
Kamil Dudka 2015-05-28 20:04:35 +02:00 коммит произвёл Daniel Stenberg
Родитель 24f0b6ebf7
Коммит 24a8359b25
1 изменённых файлов: 4 добавлений и 12 удалений

Просмотреть файл

@ -2312,20 +2312,12 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
te
);
/*
* Free userpwd for Negotiate/NTLM. Cannot reuse as it is associated with
* the connection and shouldn't be repeated over it either.
*/
switch (data->state.authhost.picked) {
case CURLAUTH_NEGOTIATE:
case CURLAUTH_NTLM:
case CURLAUTH_NTLM_WB:
Curl_safefree(conn->allocptr.userpwd);
break;
}
/* clear userpwd to avoid re-using credentials from re-used connections */
Curl_safefree(conn->allocptr.userpwd);
/*
* Same for proxyuserpwd
* Free proxyuserpwd for Negotiate/NTLM. Cannot reuse as it is associated
* with the connection and shouldn't be repeated over it either.
*/
switch (data->state.authproxy.picked) {
case CURLAUTH_NEGOTIATE: