Skip to content
Heist/ feed
Back to feed
Medium

NTLM credentials not-checked for proxy connection reuse

Type: advisorySources: OSV

libcurl reuses NTLM-authenticated proxy connections without properly making sure that the connection was authenticated with the same credentials as set for this transfer. libcurl maintains a pool of connections after a transfer has completed. The pool of connections is then gone through when a new transfer is requested and if there is a live connection available that can be reused, it is preferred instead of creating a new one. Since NTLM-based authentication is *connection oriented* instead of *request oriented* as other HTTP based authentication, it is important that only connections that have been authenticated with the correct username + password are reused. This was done properly for server connections already, but libcurl failed to do it properly for proxy connections using NTLM. A libcurl application can easily switch user credentials used for a proxy connection between two requests, and that subsequent transfer then MUST make libcurl use another connection. libcurl previously failed to do so. The effects of this flaw, is that the application could be reusing a proxy connection using the previously used credentials and thus it could be given to or prevented access from resources that it was not intended to. This problem is similar to [CVE-2014-0015](https://curl.se/docs/CVE-2014-0015.html), which was for direct server connections while this is for proxy connections.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2016-0755
Confirmed fixed CVEs
Not specified
Updated in this feed
1 Nov 2026, 09:35 UTC · Revision 1

Source evidence

NTLM credentials not-checked for proxy connection reuse

core-osv · Original source

Published 27 Jan 2016, 08:00 UTC

libcurl reuses NTLM-authenticated proxy connections without properly making sure that the connection was authenticated with the same credentials as set for this transfer. libcurl maintains a pool of connections after a transfer has completed. The pool of connections is then gone through when a new transfer is requested and if there is a live connection available that can be reused, it is preferred instead of creating a new one. Since NTLM-based authentication is *connection oriented* instead of *request oriented* as other HTTP based authentication, it is important that only connections that have been authenticated with the correct username + password are reused. This was done properly for server connections already, but libcurl failed to do it properly for proxy connections using NTLM. A libcurl application can easily switch user credentials used for a proxy connection between two requests, and that subsequent transfer then MUST make libcurl use another connection. libcurl previously failed to do so. The effects of this flaw, is that the application could be reusing a proxy connection using the previously used credentials and thus it could be given to or prevented access from resources that it was not intended to. This problem is similar to [CVE-2014-0015](https://curl.se/docs/CVE-2014-0015.html), which was for direct server connections while this is for proxy connections.

osv:CURL-CVE-2016-0755
Complete source record
{
  "id": "fe9b22ae9440742da360b0a326718a275f961335cf56982093fcd92f0c307001",
  "url": "https://osv.dev/vulnerability/CURL-CVE-2016-0755",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "NTLM credentials not-checked for proxy connection reuse",
    "summary": "libcurl reuses NTLM-authenticated proxy connections without properly making sure that the connection was authenticated with the same credentials as set for this transfer. libcurl maintains a pool of connections after a transfer has completed. The pool of connections is then gone through when a new transfer is requested and if there is a live connection available that can be reused, it is preferred instead of creating a new one. Since NTLM-based authentication is *connection oriented* instead of *request oriented* as other HTTP based authentication, it is important that only connections that have been authenticated with the correct username + password are reused. This was done properly for server connections already, but libcurl failed to do it properly for proxy connections using NTLM. A libcurl application can easily switch user credentials used for a proxy connection between two requests, and that subsequent transfer then MUST make libcurl use another connection. libcurl previously failed to do so. The effects of this flaw, is that the application could be reusing a proxy connection using the previously used credentials and thus it could be given to or prevented access from resources that it was not intended to. This problem is similar to [CVE-2014-0015](https://curl.se/docs/CVE-2014-0015.html), which was for direct server connections while this is for proxy connections.",
    "evidence": "osv:CURL-CVE-2016-0755",
    "products": [],
    "severity": "medium",
    "structured": {
      "id": "CURL-CVE-2016-0755",
      "aliases": [
        "CURL-CVE-2016-0755",
        "CVE-2016-0755"
      ],
      "affected": [
        {
          "ranges": [
            {
              "type": "SEMVER",
              "events": [
                {
                  "introduced": "7.10.7"
                },
                {
                  "fixed": "7.47.0"
                }
              ]
            }
          ],
          "versions": [
            "7.46.0",
            "7.45.0",
            "7.44.0",
            "7.43.0",
            "7.42.1",
            "7.42.0",
            "7.41.0",
            "7.40.0",
            "7.39.0",
            "7.38.0",
            "7.37.1",
            "7.37.0",
            "7.36.0",
            "7.35.0",
            "7.34.0",
            "7.33.0",
            "7.32.0",
            "7.31.0",
            "7.30.0",
            "7.29.0",
            "7.28.1",
            "7.28.0",
            "7.27.0",
            "7.26.0",
            "7.25.0",
            "7.24.0",
            "7.23.1",
            "7.23.0",
            "7.22.0",
            "7.21.7",
            "7.21.6",
            "7.21.5",
            "7.21.4",
            "7.21.3",
            "7.21.2",
            "7.21.1",
            "7.21.0",
            "7.20.1",
            "7.20.0",
            "7.19.7",
            "7.19.6",
            "7.19.5",
            "7.19.4",
            "7.19.3",
            "7.19.2",
            "7.19.1",
            "7.19.0",
            "7.18.2",
            "7.18.1",
            "7.18.0",
            "7.17.1",
            "7.17.0",
            "7.16.4",
            "7.16.3",
            "7.16.2",
            "7.16.1",
            "7.16.0",
            "7.15.5",
            "7.15.4",
            "7.15.3",
            "7.15.2",
            "7.15.1",
            "7.15.0",
            "7.14.1",
            "7.14.0",
            "7.13.2",
            "7.13.1",
            "7.13.0",
            "7.12.3",
            "7.12.2",
            "7.12.1",
            "7.12.0",
            "7.11.2",
            "7.11.1",
            "7.11.0",
            "7.10.8",
            "7.10.7"
          ],
          "database_specific": {
            "source": "https://curl.se/docs/CURL-CVE-2016-0755.json"
          }
        }
      ],
      "modified": "2026-10-24T23:17:46Z",
      "provider": "osv",
      "references": [],
      "provider_metadata": {
        "CWE": {
          "id": "CWE-305",
          "desc": "Authentication Bypass by Primary Weakness"
        },
        "URL": "https://curl.se/docs/CVE-2016-0755.json",
        "www": "https://curl.se/docs/CVE-2016-0755.html",
        "affects": "both",
        "package": "curl",
        "severity": "Medium",
        "last_affected": "7.46.0"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2016-0755",
        "evidence": "/aliases"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/database_specific/severity"
  },
  "source_id": "core-osv",
  "document_id": 444198,
  "published_at": "2016-01-27T08:00:00+00:00"
}