Project curl Security Advisory, October 31st 2018 -Permalink
libcurl contains a buffer overrun in the SASL authenticationcode.
The internal functionCurl_auth_create_plain_message
fails to correctly verify that the passed in lengths for name andpassword are not too long, then calculates a buffer size toallocate.
On systems with a 32 bitsize_t
, the math to calculatethe buffer size triggers an integer overflow when the username lengthexceeds 1GB and the password name length is close to 2GB in size. Thisinteger overflow usually causes a very small buffer to actually getallocated instead of the intended very huge one, making the use of thatbuffer end up in a heap buffer overflow.
(This bug is very similar toCVE-2018-14618.)
The affected function can only be invoked when using POP3(S), IMAP(S)or SMTP(S).
The Common Vulnerabilities and Exposures (CVE) project has assignedthe name CVE-2018-16839 to this issue.
CWE-131: Incorrect Calculation of Buffer Size
Severity: Low
This issue is only present on 32 bit systems. It also requires theusername field to use more than 2GB of memory, which should be rare.
curl is used by many applications, but not always advertised assuch.
In libcurl version7.62.0, the integer overflow is avoided. An erroris returned if a too long username is attempted.
We suggest you take one of the following actions immediately, inorder of preference:
A - Upgrade curl to version7.62.0
B - Apply the patch to your version and rebuild
C - Put length restrictions on the username field you can pass tolibcurl
It was reported to the curl project on September 6, 2018. Wecontacted distros@openwall on October 22.
curl7.62.0 was released on October 31 2018, coordinated with thepublication of this advisory.
Thanks a lot!