Cloudanix VulnDB

CVE-2014-3707

None

CVSS

—

EPSS

5.1%

Published

Nov 15, 2014

CISA due date

—

Cloudanix analysis

Monitor only SSVC: Track

A networking library used by many programs could accidentally send pieces of private computer memory to websites during certain data uploads.

Exploitation
Remote Unauthenticated
Attacker needs
None
Complexity
Moderate
Impact
Data Exposure
Component
Library
Class
Information Disclosure
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

Out-of-bounds read in curl_easy_duphandle when CURLOPT_COPYPOSTFIELDS is set, causing libcurl to send excess memory contents as part of an HTTP POST body to a remote server.

Why it matters to the business

Remote servers can obtain fragments of process memory that may contain credentials, session tokens, or other sensitive data, creating confidentiality exposure across any application or system that ships or links against the affected library versions.

How an attack unfolds

An attacker hosts a web server and crafts a scenario where a vulnerable client application performs an HTTP POST using CURLOPT_COPYPOSTFIELDS. When the client later duplicates the easy handle, the malformed copy sends additional memory bytes in the request body, which the attacker's server records.

How to fix it

Upgrade libcurl to a release newer than 7.38.0. Rebuild and redeploy all dependent applications and operating-system packages. Where immediate patching is impossible, disable or replace code paths that use CURLOPT_COPYPOSTFIELDS.

How to confirm the fix worked

Confirm installed libcurl version is outside the 7.17.1-7.38.0 range; exercise client code paths that duplicate handles after setting CURLOPT_COPYPOSTFIELDS and verify that only intended POST data is transmitted.

Typical attack path

  1. Attacker stands up a web server that accepts POST requests
  2. Victim client application builds an easy handle with CURLOPT_COPYPOSTFIELDS and performs a POST to the attacker-controlled URL
  3. Client code calls curl_easy_duphandle on the active handle
  4. Out-of-bounds data is transmitted in the subsequent request
  5. Attacker inspects captured POST bodies for readable memory artifacts

How to detect it

Scan endpoints and build artifacts for libcurl versions 7.17.1 through 7.38.0; review source or binary references to CURLOPT_COPYPOSTFIELDS in client applications; no distinctive post-exploitation log artifacts exist because the disclosure occurs inside normal POST traffic.

What your security team should do

  • Prioritize replacement of all libcurl instances between 7.17.1 and 7.38.0
  • Inventory applications that statically or dynamically link libcurl and test for use of CURLOPT_COPYPOSTFIELDS
  • Add libcurl version checks to vulnerability scanning and build pipelines

The record

The curl_easy_duphandle function in libcurl 7.17.1 through 7.38.0, when running with the CURLOPT_COPYPOSTFIELDS option, does not properly copy HTTP POST data for an easy handle, which triggers an out-of-bounds read that allows remote web servers to read sensitive memory information.

Affected packages

Ecosystem Package Introduced Fixed
Debian:11 curl 0 7.38.0-3
Debian:12 curl 0 7.38.0-3
Debian:13 curl 0 7.38.0-3
Debian:6.0 curl 0 7.21.0-2.1+squeeze10
Debian:7 curl 0 7.26.0-1+wheezy11
Mageia:3 curl 0 7.28.1-6.6.mga3
Mageia:4 curl 0 7.34.0-1.4.mga4
Red Hat:enterprise_linux:6::client curl 0 0:7.19.7-46.el6
Red Hat:enterprise_linux:6::client curl-debuginfo 0 0:7.19.7-46.el6
Red Hat:enterprise_linux:6::client libcurl 0 0:7.19.7-46.el6
Red Hat:enterprise_linux:6::client libcurl-devel 0 0:7.19.7-46.el6
Red Hat:enterprise_linux:6::computenode curl 0 0:7.19.7-46.el6
Red Hat:enterprise_linux:6::computenode curl-debuginfo 0 0:7.19.7-46.el6
Red Hat:enterprise_linux:6::computenode libcurl 0 0:7.19.7-46.el6
Red Hat:enterprise_linux:6::computenode libcurl-devel 0 0:7.19.7-46.el6
Red Hat:enterprise_linux:6::server curl 0 0:7.19.7-46.el6
Red Hat:enterprise_linux:6::server curl-debuginfo 0 0:7.19.7-46.el6
Red Hat:enterprise_linux:6::server libcurl 0 0:7.19.7-46.el6
Red Hat:enterprise_linux:6::server libcurl-devel 0 0:7.19.7-46.el6
Red Hat:enterprise_linux:6::workstation curl 0 0:7.19.7-46.el6
Red Hat:enterprise_linux:6::workstation curl-debuginfo 0 0:7.19.7-46.el6
Red Hat:enterprise_linux:6::workstation libcurl 0 0:7.19.7-46.el6
Red Hat:enterprise_linux:6::workstation libcurl-devel 0 0:7.19.7-46.el6
Red Hat:enterprise_linux:7::client curl 0 0:7.29.0-25.el7
Red Hat:enterprise_linux:7::client curl-debuginfo 0 0:7.29.0-25.el7
Red Hat:enterprise_linux:7::client libcurl 0 0:7.29.0-25.el7
Red Hat:enterprise_linux:7::client libcurl-devel 0 0:7.29.0-25.el7
Red Hat:enterprise_linux:7::computenode curl 0 0:7.29.0-25.el7
Red Hat:enterprise_linux:7::computenode curl-debuginfo 0 0:7.29.0-25.el7
Red Hat:enterprise_linux:7::computenode libcurl 0 0:7.29.0-25.el7
Red Hat:enterprise_linux:7::computenode libcurl-devel 0 0:7.29.0-25.el7
Red Hat:enterprise_linux:7::server curl 0 0:7.29.0-25.el7
Red Hat:enterprise_linux:7::server curl-debuginfo 0 0:7.29.0-25.el7
Red Hat:enterprise_linux:7::server libcurl 0 0:7.29.0-25.el7
Red Hat:enterprise_linux:7::server libcurl-devel 0 0:7.29.0-25.el7
Red Hat:enterprise_linux:7::workstation curl 0 0:7.29.0-25.el7
Red Hat:enterprise_linux:7::workstation curl-debuginfo 0 0:7.29.0-25.el7
Red Hat:enterprise_linux:7::workstation libcurl 0 0:7.29.0-25.el7
Red Hat:enterprise_linux:7::workstation libcurl-devel 0 0:7.29.0-25.el7
Ubuntu:14.04:LTS curl 0 7.35.0-1ubuntu2.2

Related vulnerabilities