gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] [gnurl] 162/178: pingpong: fix response cache memcpy overfl


From: gnunet
Subject: [GNUnet-SVN] [gnurl] 162/178: pingpong: fix response cache memcpy overflow
Date: Wed, 23 May 2018 12:26:37 +0200

This is an automated email from the git hooks/post-receive script.

ng0 pushed a commit to branch master
in repository gnurl.

commit 583b42cb3b809b1bf597af160468ccba728c2248
Author: Daniel Stenberg <address@hidden>
AuthorDate: Fri Mar 23 23:30:04 2018 +0100

    pingpong: fix response cache memcpy overflow
    
    Response data for a handle with a large buffer might be cached and then
    used with the "closure" handle when it has a smaller buffer and then the
    larger cache will be copied and overflow the new smaller heap based
    buffer.
    
    Reported-by: Dario Weisser
    CVE: CVE-2018-1000300
    Bug: https://curl.haxx.se/docs/adv_2018-82c2.html
---
 lib/pingpong.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/lib/pingpong.c b/lib/pingpong.c
index 438856a99..ad370ee82 100644
--- a/lib/pingpong.c
+++ b/lib/pingpong.c
@@ -304,7 +304,10 @@ CURLcode Curl_pp_readresp(curl_socket_t sockfd,
        * it would have been populated with something of size int to begin
        * with, even though its datatype may be larger than an int.
        */
-      DEBUGASSERT((ptr + pp->cache_size) <= (buf + data->set.buffer_size + 1));
+      if((ptr + pp->cache_size) > (buf + data->set.buffer_size + 1)) {
+        failf(data, "cached response data too big to handle");
+        return CURLE_RECV_ERROR;
+      }
       memcpy(ptr, pp->cache, pp->cache_size);
       gotbytes = (ssize_t)pp->cache_size;
       free(pp->cache);    /* free the cache */

-- 
To stop receiving notification emails like this one, please contact
address@hidden



reply via email to

[Prev in Thread] Current Thread [Next in Thread]