CURL-CVE-2019-3822

Source
https://curl.se/docs/CVE-2019-3822.html
Import Source
https://curl.se/docs/CURL-CVE-2019-3822.json
JSON Data
https://api.osv.dev/v1/vulns/CURL-CVE-2019-3822
Aliases
Published
2019-02-06T08:00:00Z
Modified
2024-01-25T02:42:48.620399Z
Summary
NTLMv2 type-3 header stack buffer overflow
Details

libcurl contains a stack based buffer overflow vulnerability.

The function creating an outgoing NTLM type-3 header (lib/vauth/ntlm.c:Curl_auth_create_ntlm_type3_message()), generates the request HTTP header contents based on previously received data. The check that exists to prevent the local buffer from getting overflowed is implemented wrongly (using unsigned math) and as such it does not prevent the overflow from happening.

This output data can grow larger than the local buffer if very large response data is extracted from a previous NTLMv2 header provided by the malicious or broken HTTP server.

Such large response data needs to be around 1000 bytes or more. The actual payload data copied to the target buffer comes from the NTLMv2 type-2 response header.

References
Credits
    • Wenxiang Qian of Tencent Blade Team - FINDER
    • Daniel Stenberg - REMEDIATION_DEVELOPER
    • Huzaifa Sidhpurwala - OTHER

Affected packages

Git / github.com/curl/curl.git

Affected ranges

Type
SEMVER
Events
Introduced
7.36.0
Fixed
7.64.0
Type
GIT
Repo
https://github.com/curl/curl.git
Events

Affected versions

7.*

7.36.0
7.37.0
7.37.1
7.38.0
7.39.0
7.40.0
7.41.0
7.42.0
7.42.1
7.43.0
7.44.0
7.45.0
7.46.0
7.47.0
7.47.1
7.48.0
7.49.0
7.49.1
7.50.0
7.50.1
7.50.2
7.50.3
7.51.0
7.52.0
7.52.1
7.53.0
7.53.1
7.54.0
7.54.1
7.55.0
7.55.1
7.56.0
7.56.1
7.57.0
7.58.0
7.59.0
7.60.0
7.61.0
7.61.1
7.62.0
7.63.0