Refuse to open a msglog file with .. in the path.
[exim.git] / src / src / deliver.c
index 59fbeeaf9a18bc69694c1996a3e0970d114cac58..72751c2dc5d415404356df594df10f61fbddc1e6 100644 (file)
@@ -328,6 +328,10 @@ Returns:    a file descriptor, or -1 (with errno set)
 static int
 open_msglog_file(uschar *filename, int mode, uschar **error)
 {
+if (Ustrstr(filename, US"/../"))
+  log_write(0, LOG_MAIN|LOG_PANIC,
+    "Attempt to open msglog file path with upward-traversal: '%s'\n", filename);
+
 for (int i = 2; i > 0; i--)
   {
   int fd = Uopen(filename,