]> git.ipfire.org Git - thirdparty/cups.git/commitdiff
CVE-2018-4700: Linux session cookies used a predictable random number seed.
authorMichael R Sweet <michael.r.sweet@gmail.com>
Fri, 7 Dec 2018 17:09:00 +0000 (12:09 -0500)
committerMichael R Sweet <michael.r.sweet@gmail.com>
Fri, 7 Dec 2018 17:09:00 +0000 (12:09 -0500)
CHANGES.md
cgi-bin/var.c

index b5aff7158022f6b3b7bb214dcdc5f96da99e7130..65cbdb13018cb0ce0a060b99ba05ba1495f954b1 100644 (file)
@@ -1,10 +1,11 @@
-CHANGES - 2.2.10 - 2018-12-06
+CHANGES - 2.2.10 - 2018-12-07
 =============================
 
 
 Changes in CUPS v2.2.10
 -----------------------
 
+- CVE-2018-4700: Linux session cookies used a predictable random number seed.
 - The `lpoptions` command now works with IPP Everywhere printers that have not
   yet been added as local queues (Issue #5045)
 - Added USB quirk rules (Issue #5395, Issue #5443)
index 649b65ba9a81f7611c70a7e866a1fbe1f3fe3f5d..579f23ba30143fc4e4ae754bbd637415ab4bb112 100644 (file)
@@ -1207,6 +1207,7 @@ cgi_set_sid(void)
   const char           *remote_addr,   /* REMOTE_ADDR */
                        *server_name,   /* SERVER_NAME */
                        *server_port;   /* SERVER_PORT */
+  struct timeval       curtime;        /* Current time */
 
 
   if ((remote_addr = getenv("REMOTE_ADDR")) == NULL)
@@ -1216,7 +1217,8 @@ cgi_set_sid(void)
   if ((server_port = getenv("SERVER_PORT")) == NULL)
     server_port = "SERVER_PORT";
 
-  CUPS_SRAND(time(NULL));
+  gettimeofday(&curtime, NULL);
+  CUPS_SRAND(curtime.tv_sec + curtime.tv_usec);
   snprintf(buffer, sizeof(buffer), "%s:%s:%s:%02X%02X%02X%02X%02X%02X%02X%02X",
            remote_addr, server_name, server_port,
           (unsigned)CUPS_RAND() & 255, (unsigned)CUPS_RAND() & 255,