From 52d8ef5719d90b60feb1d7cd5dbaa0402eed0f6c Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Mon, 12 Jun 2023 20:48:21 +0200 Subject: [PATCH] Fix CVE-2019-3822 Merge: curl/curl@50c9484278c63b958655a7 --- r5dev/thirdparty/curl/vauth/ntlm.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/r5dev/thirdparty/curl/vauth/ntlm.c b/r5dev/thirdparty/curl/vauth/ntlm.c index d02eec49..e3e7fbdf 100644 --- a/r5dev/thirdparty/curl/vauth/ntlm.c +++ b/r5dev/thirdparty/curl/vauth/ntlm.c @@ -769,11 +769,14 @@ CURLcode Curl_auth_create_ntlm_type3_message(struct Curl_easy *data, }); #ifdef USE_NTRESPONSES - if(size < (NTLM_BUFSIZE - ntresplen)) { - DEBUGASSERT(size == (size_t)ntrespoff); - memcpy(&ntlmbuf[size], ptr_ntresp, ntresplen); - size += ntresplen; + /* ntresplen + size should not be risking an integer overflow here */ + if(ntresplen + size > sizeof(ntlmbuf)) { + failf(data, "incoming NTLM message too big"); + return CURLE_OUT_OF_MEMORY; } + DEBUGASSERT(size == (size_t)ntrespoff); + memcpy(&ntlmbuf[size], ptr_ntresp, ntresplen); + size += ntresplen; DEBUG_OUT({ fprintf(stderr, "\n ntresp=");