Harden plaintext authenticator
authorJeremy Harris <jgh146exb@wizmail.org>
Thu, 21 Mar 2019 19:54:31 +0000 (19:54 +0000)
committerJeremy Harris <jgh146exb@wizmail.org>
Thu, 21 Mar 2019 19:54:31 +0000 (19:54 +0000)
doc/doc-txt/ChangeLog
src/src/auths/get_data.c

index 2085a3b7bc5248c794d5b5e3eeb7fc58d3356a1e..fa8f467e6f10c423dfc62b5e70242cfcc8419090 100644 (file)
@@ -48,6 +48,10 @@ JH/10 OpenSSL: Fix aggregation of messages.  Previously, when PIPELINING was
       dropped connections and sometimes bounces generated by a peer sending
       to this system.
 
       dropped connections and sometimes bounces generated by a peer sending
       to this system.
 
+JH/11 Harden plaintext authenticator against a badly misconfigured client-send
+      string.  Previously it was possible to cause undefined behaviour in a
+      library routine (usually a crash).  Found by "zerons".
+
 
 Exim version 4.92
 -----------------
 
 Exim version 4.92
 -----------------
index 37dcd37cc54a43ed6fe23780eb58df3ad46d822b..efb4d6d8b6897f493373c3712451050bbe4f066f 100644 (file)
@@ -174,11 +174,7 @@ for (int i = 0; i < len; i++)
     if (ss[i+1] != '^')
       ss[i] = 0;
     else
     if (ss[i+1] != '^')
       ss[i] = 0;
     else
-      {
-      i++;
-      len--;
-      memmove(ss + i, ss + i + 1, len - i);
-      }
+      if (--len > ++i) memmove(ss + i, ss + i + 1, len - i);
 
 /* The first string is attached to the AUTH command; others are sent
 unembellished. */
 
 /* The first string is attached to the AUTH command; others are sent
 unembellished. */