CVE-2016-7141
High · 7.5CVSS
7.5
EPSS
8.2%
Published
Oct 3, 2016
CISA due date
—
Cloudanix analysis
A flaw in older networking software could let attackers pretend to be trusted users during secure connections, potentially exposing sensitive data until systems are updated.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Privilege Gain
- Component
- Library
- Class
- Authentication Bypass
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The flaw permits remote attackers to hijack TLS authentication by reusing a previously loaded client certificate from file (via libnsspem.so with NSS) for connections where no certificate was explicitly set.
Why it matters to the business
Attackers can impersonate authenticated clients over TLS, leading to unauthorized access or data exposure in affected applications; 331 downstream dependents amplify potential reach across ecosystems using the vulnerable pillow packaging.
How an attack unfolds
An attacker initiates a TLS connection to a target using curl/libcurl built with NSS; when libnsspem.so is present at runtime, the library reuses a prior client certificate loaded from file even though none was configured for the current session, bypassing intended authentication checks.
How to fix it
Upgrade affected packages to fixed versions: pillow (Bitnami) to 8.1.1 or later, which resolves the underlying curl/libcurl issue by updating to 7.50.2+; rebuild any custom NSS-enabled clients to disable or update libnsspem.so usage.
How to confirm the fix worked
Verify curl/libcurl versions are at least 7.50.2; confirm libnsspem.so is not loaded or is patched; test TLS connections with explicit certificate settings to ensure reuse does not occur.
Typical attack path
- Identify targets using vulnerable curl/libcurl with NSS and libnsspem.so available.
- Trigger or observe a prior TLS session that loads a client certificate from file.
- Initiate a new TLS connection without specifying a certificate.
- Leverage certificate reuse to hijack authentication and impersonate the client.
How to detect it
Review application and system logs for unexpected client certificate usage in TLS handshakes; search for processes loading libnsspem.so alongside curl before version 7.50.2; correlate with network traffic showing authentication bypass patterns.
What your security team should do
- Immediately upgrade pillow (Bitnami) to 8.1.1 across all instances.
- Audit and rebuild any custom builds using NSS-backed curl to eliminate libnsspem.so dependency.
- Monitor for TLS authentication anomalies in application logs post-upgrade.
The record
curl and libcurl before 7.50.2, when built with NSS and the libnsspem.so library is available at runtime, allow remote attackers to hijack the authentication of a TLS connection by leveraging reuse of a previously loaded client certificate from file for a connection for which no certificate has been set, a different vulnerability than CVE-2016-5420.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Alpine:v3.10 | curl | 0 | 7.50.2-r0 |
| Alpine:v3.11 | curl | 0 | 7.50.2 |
| Alpine:v3.12 | curl | 0 | 7.50.2-r0 |
| Alpine:v3.13 | curl | 0 | 7.50.2-r0 |
| Alpine:v3.14 | curl | 0 | 7.50.2-r0 |
| Alpine:v3.15 | curl | 0 | 7.50.2-r0 |
| Alpine:v3.16 | curl | 0 | 7.50.2-r0 |
| Alpine:v3.17 | curl | 0 | 7.50.2-r0 |
| Alpine:v3.18 | curl | 0 | 7.50.2-r0 |
| Alpine:v3.19 | curl | 0 | 7.50.2-r0 |
| Alpine:v3.2 | curl | 0 | 7.49.1-r2 |
| Alpine:v3.20 | curl | 0 | 7.50.2-r0 |
| Alpine:v3.21 | curl | 0 | 7.50.2-r0 |
| Alpine:v3.22 | curl | 0 | 7.50.2-r0 |
| Alpine:v3.3 | curl | 0 | 7.49.1-r2 |
| Alpine:v3.4 | curl | 0 | 7.50.2-r0 |
| Alpine:v3.5 | curl | 0 | 7.50.2-r0 |
| Alpine:v3.6 | curl | 0 | 7.50.2 |
| Alpine:v3.7 | curl | 0 | 7.50.2 |
| Alpine:v3.8 | curl | 0 | 7.50.2 |
| Alpine:v3.9 | curl | 0 | 7.50.2-r1 |
| Debian:11 | curl | 0 | 7.51.0-1 |
| Debian:12 | curl | 0 | 7.51.0-1 |
| Debian:13 | curl | 0 | 7.51.0-1 |
| Debian:7 | curl | 0 | 7.26.0-1+wheezy15 |
| Debian:8 | curl | 0 | 7.38.0-4+deb8u13 |
| Red Hat:enterprise_linux:7::client | curl | 0 | 0:7.29.0-35.el7 |
| Red Hat:enterprise_linux:7::client | curl-debuginfo | 0 | 0:7.29.0-35.el7 |
| Red Hat:enterprise_linux:7::client | libcurl | 0 | 0:7.29.0-35.el7 |
| Red Hat:enterprise_linux:7::client | libcurl-devel | 0 | 0:7.29.0-35.el7 |
| Red Hat:enterprise_linux:7::computenode | curl | 0 | 0:7.29.0-35.el7 |
| Red Hat:enterprise_linux:7::computenode | curl-debuginfo | 0 | 0:7.29.0-35.el7 |
| Red Hat:enterprise_linux:7::computenode | libcurl | 0 | 0:7.29.0-35.el7 |
| Red Hat:enterprise_linux:7::computenode | libcurl-devel | 0 | 0:7.29.0-35.el7 |
| Red Hat:enterprise_linux:7::server | curl | 0 | 0:7.29.0-35.el7 |
| Red Hat:enterprise_linux:7::server | curl-debuginfo | 0 | 0:7.29.0-35.el7 |
| Red Hat:enterprise_linux:7::server | libcurl | 0 | 0:7.29.0-35.el7 |
| Red Hat:enterprise_linux:7::server | libcurl-devel | 0 | 0:7.29.0-35.el7 |
| Red Hat:enterprise_linux:7::workstation | curl | 0 | 0:7.29.0-35.el7 |
| Red Hat:enterprise_linux:7::workstation | curl-debuginfo | 0 | 0:7.29.0-35.el7 |
| Red Hat:enterprise_linux:7::workstation | libcurl | 0 | 0:7.29.0-35.el7 |
| Red Hat:enterprise_linux:7::workstation | libcurl-devel | 0 | 0:7.29.0-35.el7 |
| Red Hat:rhel_software_collections:3::el6 | httpd24-curl | 0 | 0:7.61.1-1.el6 |
| Red Hat:rhel_software_collections:3::el6 | httpd24-curl-debuginfo | 0 | 0:7.61.1-1.el6 |
| Red Hat:rhel_software_collections:3::el6 | httpd24-httpd | 0 | 0:2.4.34-7.el6 |
| Red Hat:rhel_software_collections:3::el6 | httpd24-httpd-debuginfo | 0 | 0:2.4.34-7.el6 |
| Red Hat:rhel_software_collections:3::el6 | httpd24-httpd-devel | 0 | 0:2.4.34-7.el6 |
| Red Hat:rhel_software_collections:3::el6 | httpd24-httpd-manual | 0 | 0:2.4.34-7.el6 |
| Red Hat:rhel_software_collections:3::el6 | httpd24-httpd-tools | 0 | 0:2.4.34-7.el6 |
| Red Hat:rhel_software_collections:3::el6 | httpd24-libcurl | 0 | 0:7.61.1-1.el6 |
| Red Hat:rhel_software_collections:3::el6 | httpd24-libcurl-devel | 0 | 0:7.61.1-1.el6 |
| Red Hat:rhel_software_collections:3::el6 | httpd24-libnghttp2 | 0 | 0:1.7.1-7.el6 |
| Red Hat:rhel_software_collections:3::el6 | httpd24-libnghttp2-devel | 0 | 0:1.7.1-7.el6 |
| Red Hat:rhel_software_collections:3::el6 | httpd24-mod_ldap | 0 | 0:2.4.34-7.el6 |
| Red Hat:rhel_software_collections:3::el6 | httpd24-mod_proxy_html | 0 | 1:2.4.34-7.el6 |
| Red Hat:rhel_software_collections:3::el6 | httpd24-mod_session | 0 | 0:2.4.34-7.el6 |
| Red Hat:rhel_software_collections:3::el6 | httpd24-mod_ssl | 0 | 1:2.4.34-7.el6 |
| Red Hat:rhel_software_collections:3::el6 | httpd24-nghttp2 | 0 | 0:1.7.1-7.el6 |
| Red Hat:rhel_software_collections:3::el6 | httpd24-nghttp2-debuginfo | 0 | 0:1.7.1-7.el6 |
| Red Hat:rhel_software_collections:3::el7 | httpd24-curl | 0 | 0:7.61.1-1.el7 |
| Red Hat:rhel_software_collections:3::el7 | httpd24-curl-debuginfo | 0 | 0:7.61.1-1.el7 |
| Red Hat:rhel_software_collections:3::el7 | httpd24-httpd | 0 | 0:2.4.34-7.el7 |
| Red Hat:rhel_software_collections:3::el7 | httpd24-httpd-debuginfo | 0 | 0:2.4.34-7.el7 |
| Red Hat:rhel_software_collections:3::el7 | httpd24-httpd-devel | 0 | 0:2.4.34-7.el7 |
| Red Hat:rhel_software_collections:3::el7 | httpd24-httpd-manual | 0 | 0:2.4.34-7.el7 |
| Red Hat:rhel_software_collections:3::el7 | httpd24-httpd-tools | 0 | 0:2.4.34-7.el7 |
| Red Hat:rhel_software_collections:3::el7 | httpd24-libcurl | 0 | 0:7.61.1-1.el7 |
| Red Hat:rhel_software_collections:3::el7 | httpd24-libcurl-devel | 0 | 0:7.61.1-1.el7 |
| Red Hat:rhel_software_collections:3::el7 | httpd24-libnghttp2 | 0 | 0:1.7.1-7.el7 |
| Red Hat:rhel_software_collections:3::el7 | httpd24-libnghttp2-devel | 0 | 0:1.7.1-7.el7 |
| Red Hat:rhel_software_collections:3::el7 | httpd24-mod_ldap | 0 | 0:2.4.34-7.el7 |
| Red Hat:rhel_software_collections:3::el7 | httpd24-mod_md | 0 | 0:2.4.34-7.el7 |
| Red Hat:rhel_software_collections:3::el7 | httpd24-mod_proxy_html | 0 | 1:2.4.34-7.el7 |
| Red Hat:rhel_software_collections:3::el7 | httpd24-mod_session | 0 | 0:2.4.34-7.el7 |
| Red Hat:rhel_software_collections:3::el7 | httpd24-mod_ssl | 0 | 1:2.4.34-7.el7 |
| Red Hat:rhel_software_collections:3::el7 | httpd24-nghttp2 | 0 | 0:1.7.1-7.el7 |
| Red Hat:rhel_software_collections:3::el7 | httpd24-nghttp2-debuginfo | 0 | 0:1.7.1-7.el7 |
| SUSE:Linux Enterprise Desktop 12 SP1 | curl | 0 | 7.37.0-28.1 |
| SUSE:Linux Enterprise Point of Sale 11 SP3 | curl | 0 | 7.19.7-1.61.1 |
| SUSE:Linux Enterprise Server 11 SP3-LTSS | curl | 0 | 7.19.7-1.61.1 |
| SUSE:Linux Enterprise Server 11 SP3-LTSS | curl-openssl1 | 0 | 7.19.7-1.61.1 |
| SUSE:Linux Enterprise Server 11 SP3-TERADATA | curl | 0 | 7.19.7-1.61.1 |
| SUSE:Linux Enterprise Server 11 SP3-TERADATA | curl-openssl1 | 0 | 7.19.7-1.61.1 |
| SUSE:Linux Enterprise Server 11 SP4 | curl | 0 | 7.19.7-1.61.1 |
| SUSE:Linux Enterprise Server 11 SP4 | curl | 0 | 7.19.7-1.70.13.1 |
| SUSE:Linux Enterprise Server 11-SECURITY | curl-openssl1 | 0 | 7.19.7-1.61.1 |
| SUSE:Linux Enterprise Server 11-SECURITY | curl-openssl1 | 0 | 7.19.7-1.70.13.1 |
| SUSE:Linux Enterprise Server 12 SP1 | curl | 0 | 7.37.0-28.1 |
| SUSE:Linux Enterprise Server for SAP Applications 11 SP4 | curl | 0 | 7.19.7-1.61.1 |
| SUSE:Linux Enterprise Server for SAP Applications 11 SP4 | curl | 0 | 7.19.7-1.70.13.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | curl | 0 | 7.37.0-28.1 |
| SUSE:Linux Enterprise Software Development Kit 11 SP4 | curl | 0 | 7.19.7-1.61.1 |
| SUSE:Linux Enterprise Software Development Kit 11 SP4 | curl | 0 | 7.19.7-1.70.13.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP1 | curl | 0 | 7.37.0-28.1 |
| SUSE:Manager 2.1 | curl | 0 | 7.19.7-1.61.1 |
| SUSE:Manager Proxy 2.1 | curl | 0 | 7.19.7-1.61.1 |
| SUSE:OpenStack Cloud 5 | curl | 0 | 7.19.7-1.61.1 |
| SUSE:Studio Onsite 1.3 | curl | 0 | 7.19.7-1.20.47.2 |
| Ubuntu:14.04:LTS | curl | 0 | 7.35.0-1ubuntu2.10 |
| Ubuntu:16.04:LTS | curl | 0 | 7.47.0-1ubuntu2.2 |
Related vulnerabilities
- CVE-2021-22898 curl 7.7 through 7.76.1 suffers from an information disclosure when the `-t` command line… Also affects curl
- CVE-2019-5481 Double-free vulnerability in the FTP-kerberos code in cURL 7.52.0 to 7.65.3. Also affects curl
- CVE-2019-5482 Heap buffer overflow in the TFTP protocol handler in cURL 7.19.4 to 7.65.3. Also affects curl
- CVE-2019-5436 A heap buffer overflow in the TFTP receiving code allows for DoS or arbitrary code… Also affects curl
- CVE-2017-8817 The FTP wildcard function in curl and libcurl before 7.57.0 allows remote attackers to… Also affects curl
- CVE-2017-8816 The NTLM authentication feature in curl and libcurl before 7.57.0 on 32-bit platforms… Also affects curl
- CVE-2017-1000257 An IMAP FETCH response line indicates the size of the returned data, in number of bytes. Also affects curl
- CVE-2016-7167 Multiple integer overflows in the (1) curl_escape, (2) curl_easy_escape, (3)… Also affects curl